1#ifndef ROUTING_KIT_BIT_VECTOR_H
2#define ROUTING_KIT_BIT_VECTOR_H
29 void resize(uint64_t
size,
bool init_value =
false);
35 assert(x <
size_ &&
"argument out of bounds");
38 uint64_t d =
data_[a];
39 return d & (1ull << b);
43 assert(x <
size_ &&
"argument out of bounds");
46 uint64_t d =
data_[a];
52 assert(x <
size_ &&
"argument out of bounds");
55 uint64_t d =
data_[a];
56 d |= ((uint64_t)value << b);
60 void set(uint64_t x,
bool value){
61 assert(x <
size_ &&
"argument out of bounds");
64 uint64_t d =
data_[a];
66 d |= ((uint64_t)value << b);
71 assert(x <
size_ &&
"argument out of bounds");
74 uint64_t d =
data_[a];
80 assert(x <
size_ &&
"argument out of bounds");
83 uint64_t d =
data_[a];
125 for(uint64_t x=0; x<size; ++x)
static constexpr Uninitialized uninitialized
uint64_t uint512_count() const
BitVector & operator&=(const BitVector &)
void set_if(uint64_t x, bool value)
BitVector & operator=(BitVector)
friend bool operator<(const BitVector &l, const BitVector &r)
void set(uint64_t x, bool value)
BitVector & operator|=(const BitVector &)
BitVector operator~() const
uint64_t count_false() const
void resize(uint64_t size, Uninitialized)
friend bool operator==(const BitVector &l, const BitVector &r)
const uint64_t * data() const
BitVector & operator^=(const BitVector &)
void reset_all_padding_bits()
uint64_t population_count() const
void make_large_enough_for(uint64_t x, Uninitialized)
uint64_t count_true() const
bool is_set(uint64_t x) const
BitVector operator^(BitVector &&l, BitVector &&r)
BitVector operator|(BitVector &&l, BitVector &&r)
BitVector operator&(BitVector &&l, BitVector &&r)
bool operator>=(const BitVector &l, const BitVector &r)
bool operator!=(const BitVector &l, const BitVector &r)
bool operator>(const BitVector &l, const BitVector &r)
BitVector make_bit_vector(uint64_t size, const F &f)
bool operator<=(const BitVector &l, const BitVector &r)