Go to the documentation of this file.
38 namespace Gecode {
namespace Set {
47 first(NULL), last(NULL), _size(0),
_card(0) {}
83 _size =
static_cast<unsigned int>(mx-mn+1);
123 return static_cast<int>(
c->
min() +
n);
141 if (
d.fst() ==
fst())
160 for (
int i=0;
i<
n;
i++) {
183 new (home)
RangeList(ri.min(),ri.max(),NULL);
185 unsigned int s = ri.width();
214 assert(
fst()!= that.
fst());
285 _size=
static_cast<unsigned int>(ma-mi+1);
290 bool ret = include_full(home, mi, ma,
d);
295 template<
class I>
bool
341 if ((mi >
max()) || (ma <
min())) {
return false; }
342 if (mi <=
min() && ma >=
max() ) {
349 bool ret = exclude_full(home, mi, ma,
d);
357 if ((mi <=
min()) && (ma >=
max())) {
return false; }
358 if (
_size == 0)
return false;
359 if (ma <
min() || mi >
max() ) {
364 bool ret = intersect_full(home, mi, ma);
369 template<
class I>
bool
371 if (
fst()==NULL) {
return false; }
384 template<
class I>
bool
386 if (!
i()) {
return false; }
409 : Iter::Ranges::Compl<Limits::
min,
413 template<
class I>
void
int min(void) const
Return smallest element.
GLBndSet(void)
Default constructor. Creates an empty set.
bool include(Space &home, int i, int j, SetDelta &d)
Include the set in this set.
friend FloatVal max(const FloatVal &x, const FloatVal &y)
LUBndSet(void)
Default constructor. Creates an empty set.
void lst(RangeList *r)
Set last range to r.
void init(Space &home)
Initialize as the full set including everything between Limits::min and Limits::max.
int min(void) const
Return minimum.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
bool exclude(Space &home, int i, int j, SetDelta &d)
Exclude the set from this set.
BndSetRanges(void)
Default constructor.
bool includeI(Space &home, I &i)
Include the set represented by i in this set.
friend FloatVal min(const FloatVal &x, const FloatVal &y)
int max(void) const
Return greatest element.
bool intersectI(Space &home, I &i)
Exclude all elements not in the set represented by i from this set.
const int min
Smallest allowed integer in integer set.
void init(I &i)
Initialize with iterator i.
void init(Space &home)
Initialize as the empty set.
RangeList * lst(void) const
Return last range.
RangeList * ranges(void) const
Return range list for iteration.
void excludeAll(Space &home)
Exclude all elements from this set.
int minN(unsigned int n) const
Return n -th smallest element.
unsigned int size(void) const
Return size (cardinality) of set.
static const int MIN_OF_EMPTY
Returned by empty sets when asked for their minimum element.
bool in(int i) const
Test whether i is an element of this set.
Range iterator for computing the complement (described by template arguments)
RangeList * fst(void) const
Return first range.
void become(Space &home, const BndSet &s)
Make this set equal to s.
Gecode toplevel namespace
const int max
Largest allowed integer in integer set.
const unsigned int card
Maximum cardinality of an integer set.
static const int MAX_OF_EMPTY
Returned by empty sets when asked for their maximum element.
unsigned int size(void) const
Return size.
unsigned int _card
The cardinality this set represents.
bool isConsistent(void) const
Check whether internal invariants hold.
Range iterator for computing intersection (binary)
Post propagator for SetVar SetOpType SetVar SetRelType r
Range iterator for computing set difference.
bool excludeI(Space &home, I &i)
Exclude all elements in the set represented by i from this set.
T * alloc(long unsigned int n)
Allocate block of n objects of type T from space heap.
void update(Space &home, BndSet &x)
Update this set to be a clone of set x.
void init(const BndSet &s)
Initialize with BndSet s.
unsigned int _size
The size of this set.
int max(void) const
Return maximum.
void dispose(Space &home)
Free memory used by this set.
Range iterator for computing union (binary)
Finite set delta information for advisors.
void dispose(Space &home, RangeList *l)
Free memory for all elements between this and l (inclusive)
void fst(RangeList *r)
Set first range to r.
Range iterator for integer sets.
RangesCompl(void)
Default constructor.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
bool empty(void) const
Test whether this set is empty.
Post propagator for f(x \diamond_{\mathit{op}} y) \sim_r z \f$ void rel(Home home
Gecode::FloatVal c(-8, 8)
void init(const Gecode::RangeList *s)
Initialize with range list s.
int n
Number of negative literals for node type.
Lists of ranges (intervals)
bool overwrite(Space &home, I &i)
Overwrite the ranges with those represented by i.
Gecode::IntArgs i({1, 2, 3, 4})
int p
Number of positive literals for node type.
BndSet(void)
Default constructor. Creates an empty set.
unsigned int card(void) const
Return cardinality.
bool intersect(Space &home, int i, int j)
Intersect this set with the set .