Gecode::Int::IntVarImp Class Reference
[Other available functionality]
Inherits Gecode::Int::IntVarImpBase.
Detailed Description
Integer variable implementation.
Definition at line 40 of file var.icc.
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). | |
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. | |
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... |
Constructor & Destructor Documentation
|
Constructor for cloning x (is_bool whether this is a Boolean variable).
|
|
Initialize with range domain.
|
|
Initialize with domain specified by d.
|
Member Function Documentation
|
Return first element of rangelist.
|
|
Set first element of rangelist.
|
|
Return last element of rangelist.
|
|
Set last element of rangelist.
|
|
Return minimum of domain.
|
|
Return maximum of domain.
|
|
Return assigned value (only if assigned).
|
|
Return median of domain.
|
|
Return size (cardinality) of domain.
|
|
Return width of domain (distance between maximum and minimum).
|
|
Return regret of domain minimum (distance to next larger value).
|
|
Return regret of domain maximum (distance to next smaller value).
|
|
Test whether domain is a range.
|
|
Test whether variable is assigned.
|
|
Test whether n is contained in domain.
|
|
Test whether n is contained in domain.
|
|
Return range list for forward iteration.
|
|
Return range list for backward iteration.
|
|
Restrict domain values to be less or equal than n.
|
|
Restrict domain values to be less or equal than n.
|
|
Restrict domain values to be greater or equal than n.
|
|
Restrict domain values to be greater or equal than n.
|
|
Restrict domain values to be different from n.
|
|
Restrict domain values to be different from n.
|
|
Restrict domain values to be equal to n.
|
|
Restrict domain values to be equal to n.
|
|
Replace domain by range sequence described by i.
|
|
Intersect domain with range sequence described by i.
|
|
Remove from domain the range sequence described by i.
|
|
Assign unassigned variable to zero.
|
|
Assign unassigned variable to one.
|
|
Subscribe propagator p with propagation condition pc to variable. In case process is false, the propagator is just subscribed but not processed for execution (this must be used when creating subscriptions during propagation). |
|
Return copy of this variable.
|
|
Return copy of this variable (Boolean).
|
Member Data Documentation
|
Domain information. Provides fast access to minimum and maximum of the entire domain and links to the first element of a RangeList defining the domain. |
|
Link the last element.
|
|
Size of holes in the domain.
|
The documentation for this class was generated from the following files:
- gecode/int/var.icc (Revision: 3686)
- gecode/int/var/imp.cc (Revision: 3568)
- gecode/int/var/imp.icc (Revision: 3568)