BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/MdcTrkRecon/include/MdcTrkRecon/countBits.h
Go to the documentation of this file.
1// Count the number of bits set in a word; return that number.
2// Use a small lookup table. Size of lookup table is tradeoff between
3// # of iterations needed and cache space used.
4
5inline int countbits( unsigned word ) {
6 const int nbit[16] = { 0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4 };
7 int nset = 0;
8 for ( unsigned i = 0; i < 2 * sizeof( unsigned ); i++ )
9 { // assume char = 8 bits, i.e. two
10 nset += nbit[word & 0xf]; // iterations per 'char' size object
11 word >>= 4;
12 }
13 return nset;
14}