69 MinusView::baseval(
int val)
const {
84 return x.regret_max();
88 return x.regret_min();
116 return x.gq(home,-n);
120 return x.gq(home,-n);
125 return x.gr(home,-n);
129 return x.gr(home,-n);
134 return x.lq(home,-n);
138 return x.lq(home,-n);
143 return x.le(home,-n);
147 return x.le(home,-n);
152 return x.nq(home,-n);
156 return x.nq(home,-n);
161 return x.eq(home,-n);
165 return x.eq(home,-n);
178 return x.narrow_r(home,mi,
false);
185 return x.inter_r(home,mi,
false);
192 return x.minus_r(home,mi,
false);
199 return x.narrow_v(home,mi,
false);
206 return x.inter_v(home,mi,
false);
213 return x.minus_v(home,mi,
false);
301 unsigned int i =
x.size() / 2;
305 while (i >=
r.width()) {
309 return r.min() +
static_cast<int>(i);
318 return x.base() ==
y.base();
Generic domain change information to be supplied to advisors.
static ModEvent me(const ModEventDelta &med)
int max(void) const
Return largest value of range.
int min(void) const
Return smallest value of range.
void init(const IntVarImp *x)
Initialize with ranges from variable implementation x.
IntVarImpBwd(void)
Default constructor.
Integer view for integer variables.
int med(void) const
Return median of domain (greatest element not greater than the median)
ModEvent narrow_v(Space &home, I &i, bool depends=true)
Replace domain by values described by i.
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.
ModEvent nq(Space &home, int n)
Restrict domain values to be different from n.
unsigned int regret_max(void) const
Return regret of domain maximum (distance to next smaller value)
ModEvent le(Space &home, int n)
Restrict domain values to be less than n.
unsigned int width(void) const
Return width of domain (distance between maximum and minimum)
ModEvent gr(Space &home, int n)
Restrict domain values to be greater than n.
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
unsigned int regret_min(void) const
Return regret of domain minimum (distance to next larger value)
ModEvent minus_r(Space &home, I &i, bool depends=true)
Remove from domain the ranges described by i.
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
ModEvent inter_v(Space &home, I &i, bool depends=true)
Intersect domain with values described by i.
int max(void) const
Return maximum of domain.
int min(void) const
Return minimum of domain.
ModEvent inter_r(Space &home, I &i, bool depends=true)
Intersect domain with ranges described by i.
bool in(int n) const
Test whether n is contained in domain.
bool range(void) const
Test whether domain is a range.
unsigned int size(void) const
Return size (cardinality) of domain.
ModEvent narrow_r(Space &home, I &i, bool depends=true)
Replace domain by ranges described by i.
bool any(const Delta &d) const
Test whether arbitrary values got pruned.
ModEvent minus_v(Space &home, I &i, bool depends=true)
Remove from domain the values described by i.
MinusView(void)
Default constructor.
int med(void) const
Return median of domain.
int val(void) const
Return assigned value (only if assigned)
ViewRanges(void)
Default constructor.
Range iterator for integer views.
int max(void) const
Return largest value of range.
int min(void) const
Return smallest value of range.
void init(const View &x)
Initialize with ranges for view x.
ViewRanges(void)
Default constructor.
Range iterator for pointwise minus of a range iterator.
Value iterator for pointwise minus of a value iterator.
int ModEventDelta
Modification event deltas.
bool operator==(const CachedView< View > &x, const CachedView< View > &y)
bool operator!=(const CachedView< View > &x, const CachedView< View > &y)
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
Post propagator for SetVar SetOpType SetVar y
Post propagator for SetVar x
int ModEvent
Type for modification events.