23 static const uint8_t ntzTable[];
27 static int32_t pop(int64_t x);
30 static int64_t pop_array(
const int64_t* A, int32_t wordOffset, int32_t numWords);
33 static int64_t pop_intersect(
const int64_t* A,
const int64_t* B, int32_t wordOffset, int32_t numWords);
36 static int64_t pop_union(
const int64_t* A,
const int64_t* B, int32_t wordOffset, int32_t numWords);
39 static int64_t pop_andnot(
const int64_t* A,
const int64_t* B, int32_t wordOffset, int32_t numWords);
42 static int64_t pop_xor(
const int64_t* A,
const int64_t* B, int32_t wordOffset, int32_t numWords);
45 static int32_t ntz(int64_t val);
48 static int32_t ntz(int32_t val);
52 static int32_t ntz2(int64_t x);
56 static int32_t ntz3(int64_t x);
59 static bool isPowerOfTwo(int32_t v);
62 static bool isPowerOfTwo(int64_t v);
65 static int32_t nextHighestPowerOfTwo(int32_t v);
68 static int64_t nextHighestPowerOfTwo(int64_t v);
71 inline static void CSA(int64_t& h, int64_t& l, int64_t a, int64_t b, int64_t c);