38 namespace Gecode {
namespace Int {
46 : fst(NULL), lst(NULL),
n(0) {}
54 if (v+1 == c->
min()) {
61 }
else if (v <= c->
max()) {
64 }
else if (v == c->
max()+1) {
65 if ((c->
next() != NULL) && (v+1 == c->
next()->
min())) {
167 if (
empty() || (x.max() <
min()) || (x.min() >
max()))
177 if (
empty() || (x.min() <
min()) || (x.max() >
max()))
RangeList * fst
First element of range list.
int size(void) const
Return size (number of values)
int min(void) const
Return minimum.
RangeList * lst
Last element of range list.
int max(void) const
Return maximum.
Range iterator for integer views.
T * alloc(long unsigned int n)
Allocate block of n objects of type T from space heap.
Gecode::FloatVal c(-8, 8)
int p
Number of positive literals for node type.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
void dispose(Space &home)
Dispose value set.
void flush(void)
Flush entries.
FreeList ** nextRef(void)
Return pointer to next link in freelist object.
Iter::Ranges::CompareStatus compare(View x) const
Compare view x with value set.
Ranges(const ValSet &vs)
Initialize.
bool subset(View x) const
Whether all values of x are included in the value set.
CompareStatus
Comapre two iterators with each other.
RangeList * next(void) const
Return next element.
int min(void) const
Return smallest value (provided the set is not empty)
bool operator()(void) const
Test whether iterator is still at a range or done.
void operator++(void)
Move iterator to next range (if possible)
int n
Number of stored values (integer precision is sufficient)
Node * x
Pointer to corresponding Boolean expression node.
int min(void) const
Return smallest value of range.
int max(void) const
Return largest value (provided the set is not empty)
int max(void) const
Return largest value of range.
bool empty(void) const
Test whether set is empty.
Class for storing values of already assigned views.
void dispose(Space &home, RangeList *l)
Free memory for all elements between this and l (inclusive)
bool subset(I &i, J &j)
Check whether range iterator i is subset of range iterator j.
Lists of ranges (intervals)
CompareStatus compare(I &i, J &j)
Check whether range iterator i is a subset of j, or whether they are disjoint.
Gecode toplevel namespace
void update(Space &home, bool share, ValSet &vs)
Update value set during cloning.
friend FloatVal max(const FloatVal &x, const FloatVal &y)
unsigned int width(void) const
Return width of range (distance between minimum and maximum)
friend FloatVal min(const FloatVal &x, const FloatVal &y)
void add(Space &home, int v)
Add value v to value set.