73 unsigned int width(
void)
const;
112 static void*
operator new(
size_t s,
Space& home);
114 static void*
operator new(
size_t s,
void* p);
116 static void operator delete(
void*);
118 static void operator delete(
void*,
Space& home);
120 static void operator delete(
void*,
void*);
173 return static_cast<unsigned int>(
_max -
_min + 1);
178 RangeList::operator
delete(
void*) {}
181 RangeList::operator
delete(
void*,
Space&) {
186 RangeList::operator
delete(
void*,
void*) {
191 RangeList::operator
new(size_t,
Space& home) {
192 return home.fl_alloc<
sizeof(
RangeList)>();
196 RangeList::operator
new(size_t,
void* p) {
208 while (l->
next() != NULL)
220 p->
next(n); p=n; ++i;
232 while ((c != NULL) && i()) {
233 c->
min(i.min()); c->
max(i.max());
234 p=c; c=c->next(); ++i;
236 if ((c == NULL) && !i())
243 p->
next(n); p=n; ++i;
247 while (c->next() != NULL)
262 while ((c != NULL) && i()) {
263 if ((c->
max()+1 < i.min())) {
265 }
else if (i.max()+1 < c->
min()) {
267 p->
next(n); p=n; ++i;
269 int min = std::min(c->
min(),i.min());
270 int max = std::max(c->
max(),i.max());
272 p=c; c=c->next(); ++i;
274 if ((c != NULL) && (c->
min() <=
max+1)) {
279 if (i() && (i.min() <=
max+1)) {
280 max = std::max(
max,i.max());
286 f->
next()->dispose(home,p);
friend FloatVal max(const FloatVal &x, const FloatVal &y)
friend FloatVal min(const FloatVal &x, const FloatVal &y)
FreeList ** nextRef(void)
Return pointer to next link in freelist object.
FreeList(void)
Use uninitialized.
FreeList * next(void) const
Return next freelist object.
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)
int _min
Minimum of range.
RangeList * next(void) const
Return next element.
unsigned int width(void) const
Return width (distance between maximum and minimum)
static void overwrite(Space &home, RangeList *&r, Iter &i)
Overwrite rangelist r with ranges from range iterator i.
RangeList ** nextRef(void)
Return pointer to next element.
RangeList(void)
Default constructor (noop)
static void insert(Space &home, RangeList *&r, I &i)
Insert (as union) ranges from iterator i into r.
static void copy(Space &home, RangeList *&r, Iter &i)
Create rangelist r from range iterator i.
int _max
Maximum of range.
void fl_dispose(FreeList *f, FreeList *l)
Return freelist-managed memory to freelist.
Base * next(void) const
Return next test.
Range and value iterators.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
#define GECODE_NEVER
Assert that this command is never executed.