We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent fae9dcb commit c91b9beCopy full SHA for c91b9be
src/core/bitarray.h
@@ -5,6 +5,12 @@
5
#include <memory>
6
#include <cassert>
7
8
+inline uint8_t bitwise_count_bits(uint8_t v) {
9
+ v = (v & 0x55) + ((v >> 1) & 0x55);
10
+ v = (v & 0x33) + ((v >> 2) & 0x33);
11
+ return (v & 0x0f) + ((v >> 4) & 0x0f);
12
+}
13
+
14
template <typename parent_type>
15
struct bitarray_base {
16
typedef parent_type self_type;
@@ -326,7 +332,7 @@ struct sbitarray : public bitarray_base<sbitarray<bits>> {
326
332
result += bw_count_bits(_data[i]);
327
333
}
328
334
const uint32_t cur = _data[idx] & ((1 << (id % 32)) - 1);
329
- result += bw_count_bits(cur);
335
+ result += bitwise_count_bits(cur);
330
336
331
337
return (result);
338
0 commit comments