72 if (
y.range() && (
dom->next() == NULL)) {
73 dom->min(
y.min());
dom->max(
y.max());
74 }
else if (!
y.any(d) && (
y.max(d)+1 ==
y.min())) {
76 if (
y.min() >
dom->max()) {
79 while ((l != NULL) && (l->
max() <
y.min())) {
86 }
else if (!
y.any(d) && (
y.max()+1 ==
y.min(d))) {
88 if ((
y.max() <=
dom->max()) && (
dom->next() == NULL)) {
93 while ((l != NULL) && (l->
min() <=
y.max())) {
97 if (p->
next() != NULL)
Generic domain change information to be supplied to advisors.
RangeList * dom
Ranges capturing the variable domain.
static unsigned long long int slack(IntView x)
Return slack measure.
RangeList * ranges(void) const
Give access to ranges.
void prune(Space &home, IntView y, const Delta &d)
Update duplicated view from view y and modification delta d.
IntTraceView(void)
Default constructor (initializes with no view)
void update(Space &home, IntTraceView x)
Update during cloning.
Integer view for integer variables.
Range iterator for integer views.
Range iterator for range lists
Lists of ranges (intervals)
int max(void) const
Return maximum.
int min(void) const
Return minimum.
void dispose(Space &home, RangeList *l)
Free memory for all elements between this and l (inclusive)
RangeList * next(void) const
Return next element.
static void overwrite(Space &home, RangeList *&r, Iter &i)
Overwrite rangelist r with ranges from range iterator i.
static void copy(Space &home, RangeList *&r, Iter &i)
Create rangelist r from range iterator i.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar y
Post propagator for SetVar x