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())) {
76 p = reinterpret_cast<RangeList**>(
c->nextRef());
unsigned int width(void) const
Return width of range (distance between minimum and maximum)
RangeList * fst
First element of range list.
int max(void) const
Return largest value (provided the set is not empty)
bool empty(void) const
Test whether set is empty.
bool operator()(void) const
Test whether iterator is still at a range or done.
RangeList * next(void) const
Return next element.
int min(void) const
Return minimum.
RangeList * lst
Last element of range list.
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.
int size(void) const
Return size (number of values)
void flush(void)
Flush entries.
int max(void) const
Return maximum.
Ranges(const ValSet &vs)
Initialize.
CompareStatus
Comapre two iterators with each other.
void operator++(void)
Move iterator to next range (if possible)
int n
Number of stored values (integer precision is sufficient)
Iter::Ranges::CompareStatus compare(View x) const
Compare view x with value set.
int min(void) const
Return smallest value (provided the set is not empty)
Post propagator for SetVar x
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.
int max(void) const
Return largest value of range.
int min(void) const
Return smallest value of range.
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.
bool subset(View x) const
Whether all values of x are included in the value set.
friend FloatVal max(const FloatVal &x, const FloatVal &y)
friend FloatVal min(const FloatVal &x, const FloatVal &y)
void add(Space &home, int v)
Add value v to value set.