awUtil::bitfield Namespace Reference

Functions

static int  popCount (uint32_t v)

Function Documentation

static int awUtil::bitfield::popCount ( uint32_t  v ) [inline, static]
        {
            // for 32-bit unsigned ints that we use here, the following
            // bit-hack will extract the number of bits set in place.
            // see: graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel
            // or google "bit counting" or "popcount"
            v = v - ((v >> 1) & 0x55555555);
            v = (v & 0x33333333) + ((v >> 2) & 0x33333333);
            return ((v + (v >> 4) & 0xF0F0F0F) * 0x1010101) >> 24;
        }