38 namespace Gecode {
namespace Int {
namespace Extensional {
40 template<
class IndexType>
43 : _limit(static_cast<IndexType>(n)),
44 index(home.alloc<IndexType>(n)),
53 template<
class IndexType>
54 template<
class OldIndexType>
68 template<
class IndexType>
73 template<
class IndexType>
78 template<
class IndexType>
83 template<
class IndexType>
89 template<
class IndexType>
97 assert(
bits[i].none());
105 template<
class IndexType>
111 assert(mask[
i].none());
115 template<
class IndexType>
123 template<
class IndexType>
124 template<
bool sparse>
130 assert(!
bits[
i].none());
138 assert(!
bits[
i].none());
147 template<
class IndexType>
153 assert(!
bits[
i].none());
155 IndexType offset =
index[
i];
163 template<
class IndexType>
168 assert(!
bits[
i].none());
175 template<
class IndexType>
185 template<
class IndexType>
188 return static_cast<unsigned int>(
_limit);
191 template<
class IndexType>
197 template<
class IndexType>
200 return static_cast<unsigned int>(
_limit);
203 template<
class IndexType>
209 template<
class IndexType>
217 assert(static_cast<unsigned int>(width+1U) >=
words());
218 return static_cast<unsigned int>(width+1U);
const FloatNum max
Largest allowed float value.
bool empty(void) const
Check whether the set is empty.
void nand_with_mask(const BitSetData *b)
Perform "nand" with b.
void intersect_with_masks(const BitSetData *a, const BitSetData *b)
Intersect with the "or" of and b.
unsigned int width(void) const
Return the highest active index.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
void add_to_mask(const BitSetData *b, BitSetData *mask) const
Add to mask.
void o(BitSetData a)
Perform "or" with a.
unsigned int words(void) const
Return the number of required bit set words.
void init(bool setbits=false)
Initialize with all bits set if setbits.
IndexType * index
Indices.
struct Gecode::@585::NNF::@62::@63 b
For binary nodes (and, or, eqv)
bool intersects(const BitSetData *b) const
Check if has a non-empty intersection with the set.
struct Gecode::@585::NNF::@62::@64 a
For atomic nodes.
unsigned int limit(void) const
Get the limit.
void a(BitSetData a)
Perform "and" with a.
void intersect_with_mask(const BitSetData *mask)
Intersect with mask, sparse mask if sparse is true.
void replace_and_decrease(IndexType i, BitSetData w)
Replace the i th word with w, decrease limit if w is zero.
Gecode toplevel namespace
void clear_mask(BitSetData *mask) const
Clear the first limit words in mask.
unsigned int size(void) const
Return the number of required bit set words.
bool none(void) const
Whether no bits are set.
#define GECODE_NEVER
Assert that this command is never executed.