.
Integer variable implementation.
|
Range list access for iteration |
const RangeList * | ranges_fwd (void) const |
| Return range list for forward iteration.
|
const RangeList * | ranges_bwd (void) const |
| Return range list for backward iteration.
|
Value access |
int | min (void) const |
| Return minimum of domain.
|
int | max (void) const |
| Return maximum of domain.
|
int | val (void) const |
| Return assigned value (only if assigned).
|
int | med (void) const |
| Return median of domain.
|
unsigned int | size (void) const |
| Return size (cardinality) of domain.
|
unsigned int | width (void) const |
| Return width of domain (distance between maximum and minimum).
|
unsigned int | regret_min (void) const |
| Return regret of domain minimum (distance to next larger value).
|
unsigned int | regret_max (void) const |
| Return regret of domain maximum (distance to next smaller value).
|
Domain tests |
bool | range (void) const |
| Test whether domain is a range.
|
bool | assigned (void) const |
| Test whether variable is assigned.
|
bool | in (int n) const |
| Test whether n is contained in domain.
|
bool | in (double n) const |
| Test whether n is contained in domain.
|
Domain update by value |
ModEvent | lq (Space *home, int n) |
| Restrict domain values to be less or equal than n.
|
ModEvent | lq (Space *home, double n) |
| Restrict domain values to be less or equal than n.
|
ModEvent | gq (Space *home, int n) |
| Restrict domain values to be greater or equal than n.
|
ModEvent | gq (Space *home, double n) |
| Restrict domain values to be greater or equal than n.
|
ModEvent | nq (Space *home, int n) |
| Restrict domain values to be different from n.
|
ModEvent | nq (Space *home, double n) |
| Restrict domain values to be different from n.
|
ModEvent | eq (Space *home, int n) |
| Restrict domain values to be equal to n.
|
ModEvent | eq (Space *home, double n) |
| Restrict domain values to be equal to n.
|
Domain update by range iterator |
template<class I> |
ModEvent | narrow (Space *home, I &i) |
| Replace domain by range sequence described by i.
|
template<class I> |
ModEvent | inter (Space *home, I &i) |
| Intersect domain with range sequence described by i.
|
template<class I> |
ModEvent | minus (Space *home, I &i) |
| Remove from domain the range sequence described by i.
|
Boolean update operations |
void | t_zero_none (Space *home) |
| Assign unassigned variable to zero.
|
void | t_one_none (Space *home) |
| Assign unassigned variable to one.
|
Dependencies |
void | subscribe (Space *home, Propagator *p, PropCond pc, bool process=true) |
| Subscribe propagator p with propagation condition pc to variable.
|
Cloning |
IntVarImp * | copy (Space *home, bool share) |
| Return copy of this variable.
|
IntVarImp * | copy_bool (Space *home, bool share) |
| Return copy of this variable (Boolean).
|
Public Member Functions |
| IntVarImp (Space *home, int min, int max) |
| Initialize with range domain.
|
| IntVarImp (Space *home, const IntSet &d) |
| Initialize with domain specified by d.
|
Protected Member Functions |
RangeList * | fst (void) const |
| Return first element of rangelist.
|
void | fst (RangeList *f) |
| Set first element of rangelist.
|
RangeList * | lst (void) const |
| Return last element of rangelist.
|
void | lst (RangeList *l) |
| Set last element of rangelist.
|
| IntVarImp (Space *home, bool share, IntVarImp &x, bool is_bool) |
| Constructor for cloning x (is_bool whether this is a Boolean variable).
|
Protected Attributes |
RangeList | dom |
| Domain information.
|
RangeList * | _lst |
| Link the last element.
|
unsigned int | holes |
| Size of holes in the domain.
|
Classes |
class | RangeList |
| Lists of ranges (intervals). More...
|