56 if ((
x.max() < s.
min()) || (
x.min() > s.
max()))
73 return x.assigned() &&
x.in(s);
79 if ((
x.max() < s.
min()) || (
x.min() > s.
max()))
96 if ((
x.max() < s.
min()) || (
x.min() > s.
max()))
107 return !
x.assigned() &&
x.in(s);
113 if ((
x.max() < s.
min()) || (
x.min() > s.
max()))
131 return x.inter_r(home,is,
false);
145 return x.minus_r(home,is,
false);
Range iterator for integer sets.
int min(int i) const
Return minimum of range at position i.
int max(int i) const
Return maximum of range at position i.
Range iterator for integer views.
ModEvent exclude(Space &home, View &x, int s)
Prune view x to exclude all values from s.
bool excludes(const View &x, int s)
Test whether all values of view x are excluded from s.
TakesStatus
Status of whether a view takes a value from a set.
@ TS_MAYBE
Maybe or maybe not.
bool includes(const View &x, int s)
Test whether all values of view x are included in s.
ModEvent include(Space &home, View &x, int s)
Prune view x to only include values from s.
bool undecided(const View &x, int s)
Test whether no decision on inclusion or exclusion of values of view x in s can be made.
TakesStatus takes(const View &x, int s)
Return whether view x takes value s.
@ CS_NONE
Neither of the above.
@ CS_SUBSET
First is subset of second iterator.
@ CS_DISJOINT
Intersection is empty.
bool subset(I &i, J &j)
Check whether range iterator i is subset of range iterator j.
CompareStatus compare(I &i, J &j)
Check whether range iterator i is a subset of j, or whether they are disjoint.
bool disjoint(I &i, J &j)
Check whether range iterators i and j are disjoint.
Gecode toplevel namespace
Post propagator for SetVar x
int ModEvent
Type for modification events.
#define GECODE_NEVER
Assert that this command is never executed.