Finite integer set variable implementation.
|
Constructors and initialization |
| SetVarImp (Space *home) |
| Initialize with empty lower and full upper bound.
|
| SetVarImp (Space *home, int glbMin, int glbMax, int lubMin, int lubMax, unsigned int cardMin=0, unsigned int cardMax=Limits::card) |
| Initialize with given bounds and cardinality.
|
| SetVarImp (Space *home, const IntSet &glbD, int lubMin, int lubMax, unsigned int cardMin, unsigned int cardMax) |
| Initialize with given bounds and cardinality.
|
| SetVarImp (Space *home, int glbMin, int glbMax, const IntSet &lubD, unsigned int cardMin, unsigned int cardMax) |
| Initialize with given bounds and cardinality.
|
| SetVarImp (Space *home, const IntSet &glbD, const IntSet &lubD, unsigned int cardMin, unsigned int cardMax) |
| Initialize with given bounds and cardinality.
|
Value access |
unsigned int | cardMin (void) const |
| Return current cardinality minimum.
|
unsigned int | cardMax (void) const |
| Return current cardinality maximum.
|
int | lubMin (void) const |
| Return minimum of the least upper bound.
|
int | lubMax (void) const |
| Return maximum of the least upper bound.
|
int | lubMinN (int n) const |
| Return n -th smallest element in the least upper bound.
|
int | glbMin (void) const |
| Return minimum of the greatest lower bound.
|
int | glbMax (void) const |
| Return maximum of the greatest lower bound.
|
unsigned int | glbSize (void) const |
| Return the size of the greatest lower bound.
|
unsigned int | lubSize (void) const |
| Return the size of the least upper bound.
|
Domain tests |
bool | assigned (void) const |
| Test whether variable is assigned.
|
bool | knownIn (int n) const |
| Test whether n is contained in greatest lower bound.
|
bool | knownOut (int) const |
| Test whether n is not contained in least upper bound.
|
Domain update by value |
ModEvent | include (Space *home, int n) |
| Include n in the greatest lower bound.
|
ModEvent | include (Space *home, int i, int j) |
| Include the range in the greatest lower bound.
|
ModEvent | exclude (Space *home, int n) |
| Exclude n from the least upper bound.
|
ModEvent | exclude (Space *home, int i, int j) |
| Exclude the range from the least upper bound.
|
ModEvent | intersect (Space *home, int n) |
| Exclude everything but n from the least upper bound.
|
ModEvent | intersect (Space *home, int i, int j) |
| Exclude everything but the range from the least upper bound.
|
ModEvent | cardMin (Space *home, unsigned int n) |
| Restrict cardinality to be at least n.
|
ModEvent | cardMax (Space *home, unsigned int n) |
| Restrict cardinality to be at most n.
|
Domain update by range iterator |
template<class I> |
ModEvent | includeI (Space *home, I &i) |
| Include set described by i in the greatest lower bound.
|
template<class I> |
ModEvent | excludeI (Space *home, I &i) |
| Exclude set described by i from the least upper bound.
|
template<class I> |
ModEvent | intersectI (Space *home, I &i) |
| Exclude everything but set described by i from the least upper bound.
|
Dependencies |
void | subscribe (Space *home, Propagator *p, PropCond pc, bool process=true) |
| Subscribe propagator p with propagation condition pc to variable.
|
void | cancel (Space *home, Propagator *p, PropCond pc) |
| Cancel subscription of propagator p with propagation condition pc.
|
void | subscribe (Space *home, Advisor *a) |
| Subscribe advisor a to variable.
|
void | cancel (Space *home, Advisor *a) |
| Cancel subscription of advisor a.
|
Cloning |
SetVarImp * | copy (Space *home, bool share) |
| Return copy of this variable.
|
Reflection |
Reflection::Arg * | spec (const Space *home, Reflection::VarMap &m) const |
| Return specification.
|
static VarImpBase * | create (Space *home, Reflection::VarSpec &spec) |
| Create variable implementation from specification.
|
static void | constrain (Space *home, VarImpBase *v, Reflection::VarSpec &spec) |
| Constrain variable implementation using specification.
|
Delta information for advisors |
int | glbMin (const Delta *d) const |
| Return minimum value just pruned from glb.
|
int | glbMax (const Delta *d) const |
| Return maximum value just pruned from glb.
|
bool | glbAny (const Delta *d) const |
| Test whether arbitrary values got pruned from glb.
|
int | lubMin (const Delta *d) const |
| Return minimum value just pruned from lub.
|
int | lubMax (const Delta *d) const |
| Return maximum value just pruned from lub.
|
bool | lubAny (const Delta *d) const |
| Test whether arbitrary values got pruned from lub.
|
static ModEvent | modevent (const Delta *d) |
| Return modification event.
|
Protected Member Functions |
| SetVarImp (Space *home, bool share, SetVarImp &x) |
| Constructor for cloning x.
|