35 return a.bit_index_ !=
b.bit_index_;
164 return offset + size <= 64;
400template<
typename... Args>
constexpr int64_t one_after_last() const
constexpr int64_t size() const
constexpr bool is_empty() const
constexpr int64_t start() const
constexpr IndexRange take_back(int64_t n) const
constexpr IndexRange slice(int64_t start, int64_t size) const
constexpr IndexRange take_front(int64_t n) const
BitIteratorBase & operator++()
friend bool operator!=(const BitIteratorBase &a, const BitIteratorBase &b)
BitIteratorBase(const BitInt *data, const int64_t bit_index)
BitIterator(const BitInt *data, const int64_t bit_index)
IndexRange index_range() const
const BitInt * data() const
BitRef operator[](const int64_t index) const
BitSpan take_front(const int64_t n) const
BitSpan(const BitInt *data, const IndexRange bit_range)
BitSpan take_back(const int64_t n) const
BitSpan slice(const IndexRange range) const
BitSpan(const BitInt *data, const int64_t size_in_bits)
const IndexRange & bit_range() const
BitIterator begin() const
int64_t full_ints_num() const
BoundedBitSpan(const BitInt *data, const IndexRange bit_range)
BoundedBitSpan(const BitSpan other)
BoundedBitSpan take_front(const int64_t n) const
BoundedBitSpan(const BitInt *data, const int64_t size_in_bits)
int64_t final_bits_num() const
MutableBitIterator(BitInt *data, const int64_t bit_index)
MutableBitRef operator*() const
MutableBitSpan(BitInt *data, const int64_t size)
MutableBitSpan slice(const IndexRange range) const
MutableBitIterator end() const
const IndexRange & bit_range() const
MutableBitSpan take_front(const int64_t n) const
void set_all(const bool value)
IndexRange index_range() const
void copy_from(const BitSpan other)
MutableBitRef operator[](const int64_t index) const
MutableBitSpan(BitInt *data, const IndexRange bit_range)
void fill(const bool value)
MutableBitIterator begin() const
MutableBitSpan take_back(const int64_t n) const
MutableBoundedBitSpan()=default
MutableBoundedBitSpan(BitInt *data, const IndexRange bit_range)
MutableBoundedBitSpan take_front(const int64_t n) const
MutableBoundedBitSpan(const MutableBitSpan other)
BoundedBitSpan as_span() const
MutableBoundedBitSpan(BitInt *data, const int64_t size)
int64_t final_bits_num() const
int64_t full_ints_num() const
void copy_from(const BitSpan other)
local_group_size(16, 16) .push_constant(Type b
std::optional< BoundedBitSpan > try_get_bounded_span(const BitSpan span)
static constexpr BitInt BitIndexMask
constexpr bool all_bounded_spans
static constexpr int64_t BitsPerInt
T to_best_bit_span(const T &data)
static constexpr int64_t BitToIntIndexShift
std::ostream & operator<<(std::ostream &stream, const BitRef &bit)
bool is_bounded_span(const BitSpan span)
constexpr bool is_same_any_v