14 #ifndef OR_TOOLS_BASE_BITMAP_H_
15 #define OR_TOOLS_BASE_BITMAP_H_
24 inline uint64_t
OneBit64(
int pos) {
return uint64_t{1} << pos; }
25 inline uint64_t
BitPos64(uint64_t pos) {
return (pos & 63); }
26 inline uint64_t
BitOffset64(uint64_t pos) {
return (pos >> 6); }
27 inline uint64_t
BitLength64(uint64_t size) {
return ((size + 63) >> 6); }
28 inline bool IsBitSet64(
const uint64_t*
const bitset, uint64_t pos) {
31 inline void SetBit64(uint64_t*
const bitset, uint64_t pos) {
34 inline void ClearBit64(uint64_t*
const bitset, uint64_t pos) {
43 explicit Bitmap(uint32_t size,
bool fill =
false)
46 map_(new uint64_t[array_size_]) {
57 void Resize(uint32_t size,
bool fill =
false);
60 assert(max_size_ == 0 ||
index < max_size_);
64 assert(max_size_ == 0 ||
index < max_size_);
74 memset(map_, (
value ? 0xFF : 0x00), array_size_ *
sizeof(*map_));
void Set(uint32_t index, bool value)
bool Get(uint32_t index) const
Bitmap(uint32_t size, bool fill=false)
void Resize(uint32_t size, bool fill=false)
void SetBit64(uint64_t *const bitset, uint64_t pos)
uint64_t BitLength64(uint64_t size)
uint64_t OneBit64(int pos)
uint64_t BitPos64(uint64_t pos)
bool IsBitSet64(const uint64_t *const bitset, uint64_t pos)
void ClearBit64(uint64_t *const bitset, uint64_t pos)
uint64_t BitOffset64(uint64_t pos)
Collection of objects used to extend the Constraint Solver library.
uint64_t BitLength64(uint64_t size)