This PR adds the following APIs, and refactors a few existing ones to use them as implementation details:
contains_any_in_range - Checks if any bit in a range is set.
contains_all_in_range - Checks if all bits in a range are set.
minimum finds the smallest bit that has been set, if any are.
maximum finds the largest bit that has been set, if any are.
is_full checks if every bit in the bitset has been set.
count_zeroes is the corollary to count_ones, where it counts the bits that haven't been set in a range.
remove_range clears a range of set bits. set_range now just chooses between insert_range and remove_range internally. Moves the branch out of the loop.
This PR adds the following APIs, and refactors a few existing ones to use them as implementation details:
contains_any_in_range
- Checks if any bit in a range is set.contains_all_in_range
- Checks if all bits in a range are set.minimum
finds the smallest bit that has been set, if any are.maximum
finds the largest bit that has been set, if any are.is_full
checks if every bit in the bitset has been set.count_zeroes
is the corollary tocount_ones
, where it counts the bits that haven't been set in a range.remove_range
clears a range of set bits.set_range
now just chooses between insert_range and remove_range internally. Moves the branch out of the loop.