55 std::vector<unsigned long>
d_map;
91 : d_capacity(n), d_map((d_capacity+posBits)>>baseShift,0)
95 BitMap(
const BitMap& b) : d_capacity(b.d_capacity), d_map(b.d_map) {}
99 BitMap(
unsigned long n,
const I& first,
const I& last);
102 template <
typename U>
103 BitMap(
unsigned long n,
const std::vector<U>&
v)
104 : d_capacity(n), d_map((d_capacity+posBits)>>baseShift)
106 for (
size_t i=0; i<v.size(); ++i)
111 template <
typename I,
typename J>
112 BitMap(
const I& first,
const I& last,
const J& fsub,
const J& lsub);
125 size_type
size()
const;
152 unsigned long n_th(
unsigned long n)
const;
155 unsigned long position(
unsigned long n)
const;
157 unsigned long front()
const;
161 bool back_up(
unsigned long& n)
const;
164 unsigned long range(
unsigned long first,
unsigned long number)
const;
167 {
BitMap result(*
this); result&=other;
return result; }
170 {
BitMap result(*
this); result|=other;
return result; }
173 {
BitMap result(*
this); result^=other;
return result; }
199 assert(n<d_capacity);
207 void remove(
unsigned long n)
209 assert(n<d_capacity);
214 {
if (b)
insert(n);
else remove(
n); }
220 assert(n<d_capacity);
226 void reset() { d_map.assign(d_map.size(),0ul); }
227 void fill(
size_t start,
size_t stop);
228 void clear(
size_t start,
size_t stop);
238 void setRange(
unsigned long start,
unsigned long amount,
unsigned long source);
268 std::vector<unsigned long>::const_iterator
d_chunk;
285 d_capacity(j.d_capacity) {}
287 iterator(
const std::vector<unsigned long>::const_iterator&
p,
288 unsigned long n,
unsigned long c)
289 :d_chunk(p), d_bitAddress(n), d_capacity(c) {}
299 bool operator() ()
const {
return d_bitAddress !=
d_capacity; }
301 const value_type&
operator* ()
const {
return d_bitAddress; }
308 void change_owner(
const BitMap& b);
ptrdiff_t difference_type
Definition: bitmap.h:72
BitMap & operator~()
Definition: bitmap.cpp:368
unsigned long d_capacity
Definition: bitmap.h:270
void extend_capacity(bool b)
Definition: bitmap.cpp:559
bool empty() const
Definition: bitmap.cpp:209
BitMap operator^(const BitMap &other) const
Definition: bitmap.h:172
BitMap operator&(const BitMap &other) const
Definition: bitmap.h:166
std::vector< unsigned long >::const_iterator d_chunk
Definition: bitmap.h:268
unsigned long d_bitAddress
Definition: bitmap.h:269
BitMap()
Definition: bitmap.h:82
bool full() const
Definition: bitmap.cpp:240
iterator begin() const
Definition: bitmap.cpp:130
iterator const_iterator
Definition: bitmap.h:76
BitMap(const BitMap &b)
Copy constructor.
Definition: bitmap.h:95
value_type & reference
Definition: bitmap.h:68
uA p
Definition: lists.cpp:26
unsigned long size_type
Definition: bitmap.h:73
void set_capacity(unsigned long n)
Definition: bitmap.cpp:548
void clear(size_t start, size_t stop)
Sets all the bits in positions |i| with |start<=i<stop|.
Definition: bitmap.cpp:511
BitMap(unsigned long n)
Constructs a zero-initialized bitmap with a capacity of n bits.
Definition: bitmap.h:90
bool contains(const BitMap &b) const
Definition: bitmap.cpp:182
ptrdiff_t difference_type
Definition: bitmap.h:277
BitMap & operator^=(const BitMap &)
Definition: bitmap.cpp:412
unsigned long value_type
Definition: bitmap.h:276
bool operator<(const BitMap &b) const
Definition: bitmap.h:127
iterator(const std::vector< unsigned long >::const_iterator &p, unsigned long n, unsigned long c)
Definition: bitmap.h:287
iterator(const iterator &j)
Definition: bitmap.h:284
void set_to(unsigned long n, bool b)
Definition: bitmap.h:213
static unsigned long baseBits
Definition: bitmap.h:57
std::vector< unsigned long > d_map
Definition: bitmap.h:55
const value_type & reference
Definition: bitmap.h:279
unsigned long position(unsigned long n) const
Number of values |<n| present (set) in the bitmap.
Definition: bitmap.cpp:305
bool operator==(const BitMap &b) const
Definition: bitmap.h:128
std::forward_iterator_tag iterator_category
Definition: bitmap.h:275
iterator()
Definition: bitmap.h:282
const value_type * pointer
Definition: bitmap.h:278
void fill()
Definition: bitmap.cpp:484
unsigned long capacity() const
Definition: bitmap.h:124
const value_type & const_reference
Definition: bitmap.h:69
bool operator&=(const BitMap &)
Definition: bitmap.cpp:383
bool operator!=(const BitMap &b) const
Definition: bitmap.h:129
RationalVector< C2 > operator*(const matrix::Matrix< C1 > &M, const RationalVector< C2 > &v)
Definition: ratvec.cpp:158
bool back_up(unsigned long &n) const
Definition: bitmap.cpp:160
size_type size() const
Definition: bitmap.cpp:345
BitMap & operator<<=(unsigned long delta)
Definition: bitmap.cpp:435
RealFormNbr number
Definition: output.cpp:72
void flip(unsigned long n)
Definition: bitmap.h:218
BitMap & andnot(const BitMap &b)
Definition: bitmap.cpp:426
BitMap(unsigned long n, const std::vector< U > &v)
Definition: bitmap.h:103
static unsigned long posBits
Definition: bitmap.h:56
void reset()
Definition: bitmap.h:226
const value_type * const_pointer
Definition: bitmap.h:71
Definition: constants.h:35
void set_mod2(unsigned long n, unsigned long v)
Definition: bitmap.h:216
BitMap & operator>>=(unsigned long delta)
Definition: bitmap.cpp:457
value_type * pointer
Definition: bitmap.h:70
void setRange(unsigned long start, unsigned long amount, unsigned long source)
Definition: bitmap.cpp:574
iterator end() const
returns the past-the-end iterator for the bitmap.
Definition: bitmap.cpp:148
static unsigned long bitMask[longBits]
Definition: constants.h:48
unsigned long n
Definition: axis.cpp:77
BitMap & operator=(const BitMap &)
Definition: bitmap.cpp:114
size_t d_capacity
Definition: bitmap.h:54
unsigned long front() const
Definition: bitmap.cpp:223
unsigned long value_type
Definition: bitmap.h:67
BitMap operator|(const BitMap &other) const
Definition: bitmap.h:169
unsigned long n_th(unsigned long n) const
Value at index |n| if viewed as list of |unsigned long| values.
Definition: bitmap.cpp:267
static unsigned long baseShift
Definition: bitmap.h:58
Container of a large (more than twice the machine word size) set of bits.
Definition: bitmap.h:52
void swap(BitMap &)
Definition: bitmap.cpp:583
void insert(unsigned long n)
Definition: bitmap.h:197
BitMap & operator|=(const BitMap &)
Definition: bitmap.cpp:400
bool isMember(unsigned long n) const
Definition: bitmap.h:138
Traverses the set bits of a BitMap.
Definition: bitmap.h:266
unsigned long range(unsigned long first, unsigned long number) const
Definition: bitmap.cpp:331
bool disjoint(const BitMap &b) const
Definition: bitmap.cpp:194
Vertex v
Definition: graph.cpp:116