38namespace Gecode {
namespace Int {
50 :
DerivedView<View>(
y), _firstRange(NULL), _lastRange(NULL),
99 return x.regret_min();
104 return x.regret_max();
202 return x.narrow_r(home,i,depend);
208 return x.inter_r(home,i,depend);
214 return x.minus_r(home,i,depend);
220 return x.narrow_v(home,i,depend);
226 return x.inter_v(home,i,depend);
232 return x.minus_v(home,i,depend);
244 return View::med(me);
284 _firstRange =
new (home)
RangeList(
y._firstRange->min(),
285 y._firstRange->max(),NULL);
288 for (
RangeList* y_cur =
y._firstRange->next(); y_cur != NULL;
289 y_cur = y_cur->next()) {
291 new (home)
RangeList(y_cur->min(),y_cur->max(),NULL);
309 for (
int i=s.
ranges(); i--;) {
312 _lastRange = _firstRange;
320 _firstRange->dispose(home,_lastRange);
337 return x.size() != _size;
383 : cr(
x._firstRange), dr(
x.base()) {
390 cr.init(
x._firstRange);
402 return (
x.base() ==
y.base()) && (
x.offset() ==
y.offset());
int n
Number of negative literals for node type.
Generic domain change information to be supplied to advisors.
Base-class for derived views.
void update(Space &home, DerivedView< View > &y)
Update this view to be a clone of view y.
int min(int i) const
Return minimum of range at position i.
int max(int i) const
Return maximum of range at position i.
int ranges(void) const
Return number of ranges of the specification.
unsigned int size(void) const
Return size (cardinality) of set.
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
unsigned int size(void) const
Return size (cardinality) of domain.
bool any(const Delta &d) const
Test whether arbitrary values got pruned.
ModEvent le(Space &home, int n)
Restrict domain values to be less than n.
int med(void) const
Return median of domain (greatest element not greater than the median)
unsigned int width(void) const
Return width of domain (distance between maximum and minimum)
ModEvent inter_v(Space &home, I &i, bool depends=true)
Intersect domain with values described by i.
ModEvent narrow_r(Space &home, I &i, bool depends=true)
Replace domain by ranges described by i.
ModEvent minus_v(Space &home, I &i, bool depends=true)
Remove from domain the values described by i.
ModEvent eq(Space &home, int n)
Restrict domain values to be equal to n.
ModEvent minus_r(Space &home, I &i, bool depends=true)
Remove from domain the ranges described by i.
bool in(int n) const
Test whether n is contained in domain.
void initCache(Space &home, const IntSet &s)
Initialize cache to set s.
unsigned int regret_max(void) const
Return regret of domain maximum (distance to next smaller value)
ModEvent narrow_v(Space &home, I &i, bool depends=true)
Replace domain by values described by i.
bool range(void) const
Test whether domain is a range.
int val(void) const
Return assigned value (only if assigned)
void cache(Space &home)
Update cache to current domain.
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
ModEvent inter_r(Space &home, I &i, bool depends=true)
Intersect domain with ranges described by i.
ModEvent gr(Space &home, int n)
Restrict domain values to be greater than n.
unsigned int regret_min(void) const
Return regret of domain minimum (distance to next larger value)
int min(void) const
Return minimum of domain.
bool modified(void) const
Check whether cache differs from current domain.
ModEvent nq(Space &home, int n)
Restrict domain values to be different from n.
void update(Space &home, CachedView< View > &y)
Update this view to be a clone of view y.
int max(void) const
Return maximum of domain.
CachedView(void)
Default constructor.
void init(const CachedView< View > &x)
Initialize with ranges for view x.
ViewRanges< View > dr
Current domain iterator.
Iter::Ranges::RangeList cr
Cached domain iterator.
ViewDiffRanges(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.
void init(Iter::Ranges::RangeList &i, ViewRanges< View > &j)
Lists of ranges (intervals)
RangeList * next(void) const
Return next element.
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 y
Post propagator for SetVar x
int ModEvent
Type for modification events.