diff options
Diffstat (limited to 'include/utils/BitSet.h')
-rw-r--r-- | include/utils/BitSet.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/utils/BitSet.h b/include/utils/BitSet.h index f03825a..de748b5 100644 --- a/include/utils/BitSet.h +++ b/include/utils/BitSet.h @@ -61,6 +61,10 @@ struct BitSet32 { // Result is undefined if all bits are marked. inline uint32_t firstUnmarkedBit() const { return __builtin_clz(~ value); } + // Finds the last marked bit in the set. + // Result is undefined if all bits are unmarked. + inline uint32_t lastMarkedBit() const { return 31 - __builtin_ctz(value); } + // Gets the index of the specified bit in the set, which is the number of // marked bits that appear before the specified bit. inline uint32_t getIndexOfBit(uint32_t n) const { |