@@ -76,7 +76,7 @@ namespace graphlab {
7676 inline void resize (size_t n) {
7777 len = n;
7878 // need len bits
79- arrlen = next_powerof2 (n) / sizeof (size_t ) + 1 ;
79+ arrlen = (n / ( sizeof (size_t ) * 8 )) + (n % ( sizeof ( size_t ) * 8 ) > 0 ) ;
8080 array = (size_t *)realloc (array, sizeof (size_t ) * arrlen);
8181 }
8282
@@ -296,20 +296,6 @@ namespace graphlab {
296296
297297 private:
298298
299- inline size_t next_powerof2 (size_t val) {
300- --val;
301- val = val | (val >> 1 );
302- val = val | (val >> 2 );
303- val = val | (val >> 4 );
304- val = val | (val >> 8 );
305- val = val | (val >> 16 );
306- #ifdef _LP64
307- val = val | (val >> 32 );
308- #endif
309- return val + 1 ;
310- }
311-
312-
313299 inline static void bit_to_pos (uint32_t b, uint32_t & arrpos, uint32_t & bitpos) {
314300 // the compiler better optimize this...
315301 arrpos = b / (8 * sizeof (size_t ));
@@ -551,20 +537,21 @@ namespace graphlab {
551537
552538 // / Serializes this bitset to an archive
553539 inline void save (oarchive& oarc) const {
554- oarc <<len << arrlen;
555- if (arrlen > 0 ) serialize (oarc, array, arrlen*sizeof (size_t ));
540+ // oarc <<len << arrlen;
541+ // if (arrlen > 0)
542+ serialize (oarc, array, arrlen*sizeof (size_t ));
556543 }
557544
558545 // / Deserializes this bitset from an archive
559546 inline void load (iarchive& iarc) {
560- size_t l;
547+ /* size_t l;
561548 size_t arl;
562549 iarc >> l >> arl;
563550 ASSERT_EQ(l, len);
564- ASSERT_EQ (arl, arrlen);
565- if (arrlen > 0 ) {
566- deserialize (iarc, array, arrlen*sizeof (size_t ));
567- }
551+ ASSERT_EQ(arl, arrlen);*/
552+ // if (arrlen > 0) {
553+ deserialize (iarc, array, arrlen*sizeof (size_t ));
554+ // }
568555 }
569556
570557 size_t popcount () const {
@@ -577,21 +564,6 @@ namespace graphlab {
577564 }
578565
579566 private:
580-
581- inline static size_t next_powerof2 (size_t val) {
582- --val;
583- val = val | (val >> 1 );
584- val = val | (val >> 2 );
585- val = val | (val >> 4 );
586- val = val | (val >> 8 );
587- val = val | (val >> 16 );
588- #ifdef _LP64
589- val = val | (val >> 32 );
590- #endif
591- return val + 1 ;
592- }
593-
594-
595567 inline static void bit_to_pos (uint32_t b, uint32_t &arrpos, uint32_t &bitpos) {
596568 // the compiler better optimize this...
597569 arrpos = b / (8 * sizeof (size_t ));
@@ -616,11 +588,11 @@ namespace graphlab {
616588 }
617589
618590 static const size_t arrlen;
619- size_t array[len / sizeof (size_t ) + 1 ];
591+ size_t array[len / ( sizeof (size_t ) * 8 ) + (len % ( sizeof ( size_t ) * 8 ) > 0 ) ];
620592 };
621593
622594 template <int len>
623- const size_t fixed_dense_bitset<len>::arrlen = len / sizeof (size_t ) + 1 ;
595+ const size_t fixed_dense_bitset<len>::arrlen = len / ( sizeof (size_t ) * 8 ) + (len % ( sizeof ( size_t ) * 8 ) > 0 ) ;
624596}
625597#endif
626598
0 commit comments