20 typedef long unsigned Word;
41 inline operator bool()
const {
42 return (*word) & (1lu << pos);
47 (*word) ^= (1lu << pos);
53 (*word) |= (1lu << pos);
58 (*word) &= ~(1lu << pos);
62 Reference(DynBitset::Word* word,
size_t pos)
63 : word(word), pos(pos) {}
65 DynBitset::Word* word;
86 inline size_t size()
const {
return size_; }
90 return (data[pos/word_size]) & (1lu << (pos % word_size));
127 bool anyOver(
size_t pos)
const;
135 std::string
dump()
const;
138 inline void checkSize(
const DynBitset& oth)
const {
139 if(size_ != oth.size_)
143 inline size_t nbWords()
const {
144 return (size_ + word_size - 1) / word_size;
149 int whichBit(Word word,
int offset = 0)
const;
154 constexpr
static size_t word_size =
sizeof(Word) * 8;
Definition: dyn_bitset.h:27
void operator=(const DynBitset &oth)
Definition: dyn_bitset.cpp:53
DynBitset operator&(const DynBitset &oth) const
Bitwise AND of two DynBitsets.
Definition: dyn_bitset.cpp:98
Reference & flip()
In-place flips the bit.
Definition: dyn_bitset.h:46
void reset()
Sets all bits to false.
Definition: dyn_bitset.cpp:125
bool operator~() const
Flips and returns the bit.
Definition: dyn_bitset.h:36
std::string dump() const
Dumps the DynBitset to an hex representation.
Definition: dyn_bitset.cpp:176
int singleBit() const
Checks if a single bit is set.
Definition: dyn_bitset.cpp:164
Definition: dyn_bitset.h:25
DynBitset & operator^=(const DynBitset &oth)
In-place bitwise xor.
Definition: dyn_bitset.cpp:76
DynBitset(size_t size)
size is expressed in bits. Initializes to zeroes.
Definition: dyn_bitset.cpp:23
friend class Reference
Definition: dyn_bitset.h:68
DynBitset & flip()
In-place bitwise flip.
Definition: dyn_bitset.cpp:83
bool operator[](size_t pos) const
Constant bit access operator.
Definition: dyn_bitset.h:89
bool anyOver(size_t pos) const
Checks if any bit above the posth (incl.) is true.
Definition: dyn_bitset.cpp:137
void reset()
Resets the bit (slightly faster than = false)
Definition: dyn_bitset.h:57
~DynBitset()
Definition: dyn_bitset.cpp:49
bool any() const
Checks if any bit is true.
Definition: dyn_bitset.cpp:130
DynBitset & operator&=(const DynBitset &oth)
Definition: dyn_bitset.cpp:62
Definition: dyn_bitset.h:18
DynBitset & operator|=(const DynBitset &oth)
In-place bitwise or.
Definition: dyn_bitset.cpp:69
DynBitset operator^(const DynBitset &oth) const
Bitwise XOR of two DynBitsets.
Definition: dyn_bitset.cpp:112
DynBitset operator~() const
Bitwise flip.
Definition: dyn_bitset.cpp:119
DynBitset operator|(const DynBitset &oth) const
Bitwise OR of two DynBitsets.
Definition: dyn_bitset.cpp:105
size_t size() const
Definition: dyn_bitset.h:86