77 unsigned int width(
void)
const;
116 static void*
operator new(
size_t s,
Space& home);
118 static void*
operator new(
size_t s,
void*
p);
120 static void operator delete(
void*);
122 static void operator delete(
void*,
Space& home);
124 static void operator delete(
void*,
void*);
177 return static_cast<unsigned int>(
_max -
_min + 1);
182 RangeList::operator
delete(
void*) {}
185 RangeList::operator
delete(
void*,
Space&) {
190 RangeList::operator
delete(
void*,
void*) {
195 RangeList::operator
new(size_t,
Space& home) {
196 return home.fl_alloc<
sizeof(
RangeList)>();
200 RangeList::operator
new(size_t,
void*
p) {
212 while (
l->next() != NULL)
224 p->next(
n);
p=
n; ++
i;
236 while ((
c != NULL) &&
i()) {
238 p=
c;
c=
c->next(); ++
i;
240 if ((
c == NULL) && !
i())
247 p->next(
n);
p=
n; ++
i;
251 while (
c->next() != NULL)
253 p->next()->dispose(home,
c);
266 while ((
c != NULL) &&
i()) {
267 if ((
c->
max()+1 <
i.min())) {
269 }
else if (
i.max()+1 <
c->
min()) {
271 p->next(
n);
p=
n; ++
i;
276 p=
c;
c=
c->next(); ++
i;
278 if ((
c != NULL) && (
c->
min() <=
max+1)) {
283 if (
i() && (
i.min() <=
max+1)) {
290 f->next()->dispose(home,
p);
const FloatNum max
Largest allowed float value.
FreeList * next(void) const
Return next freelist object.
RangeList * next(void) const
Return next element.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
int min(void) const
Return minimum.
Gecode::FloatVal c(-8, 8)
int p
Number of positive literals for node type.
const FloatNum min
Smallest allowed float value.
Gecode::IntArgs i(4, 1, 2, 3, 4)
int n
Number of negative literals for node type.
int max(void) const
Return maximum.
FreeList ** nextRef(void)
Return pointer to next link in freelist object.
int _max
Maximum of range.
Post propagator for SetVar SetOpType SetVar SetRelType r
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
static void copy(Space &home, RangeList *&r, Iter &i)
Create rangelist r from range iterator i.
Post propagator for f(x \diamond_{\mathit{op}} y) \sim_r z \f$ void rel(Home home
Base-class for freelist-managed objects.
void fl_dispose(FreeList *f, FreeList *l)
Return freelist-managed memory to freelist.
void dispose(Space &home, RangeList *l)
Free memory for all elements between this and l (inclusive)
Lists of ranges (intervals)
static void overwrite(Space &home, RangeList *&r, Iter &i)
Overwrite rangelist r with ranges from range iterator i.
static void insert(Space &home, RangeList *&r, I &i)
Insert (as union) ranges from iterator i into r.
Gecode toplevel namespace
int _min
Minimum of range.
friend FloatVal max(const FloatVal &x, const FloatVal &y)
RangeList ** nextRef(void)
Return pointer to next element.
friend FloatVal min(const FloatVal &x, const FloatVal &y)
#define GECODE_NEVER
Assert that this command is never executed.
unsigned int width(void) const
Return width (distance between maximum and minimum)
RangeList(void)
Default constructor (noop)