Float variable implementation. More...
#include <var-imp.hpp>
Public Member Functions | |
FloatVarImp (Space &home, const FloatVal &d) | |
Initialize with interval d. | |
![]() | |
FloatVarImpBase (void) | |
Constructor for creating static instance of variable. | |
FloatVarImpBase (Gecode::Space &home) | |
Constructor for creating variable. | |
void | subscribe (Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned, bool schedule) |
Subscribe propagator p with propagation condition pc. | |
void | subscribe (Gecode::Space &home, Gecode::Advisor &a, bool assigned, bool failed) |
Subscribe advisor a if assigned is false. | |
Gecode::ModEvent | notify (Gecode::Space &home, Gecode::ModEvent me, Gecode::Delta &d) |
Notify that variable implementation has been modified with modification event me and delta information d. | |
void | reschedule (Gecode::Space &home, Gecode::Propagator &p, Gecode::PropCond pc, bool assigned) |
Re-schedule propagator p. | |
![]() | |
VarImp (Space &home) | |
Creation. | |
VarImp (void) | |
Creation of static instances. | |
VarImp * | next (void) const |
Return next copied variable. | |
VarImp (Space &home, VarImp &x) | |
Constructor for cloning. | |
bool | copied (void) const |
Is variable already copied. | |
VarImp * | forward (void) const |
Use forward pointer if variable already copied. | |
void | cancel (Space &home, Propagator &p, PropCond pc) |
Cancel subscription of propagator p with propagation condition pc. | |
void | cancel (Space &home, Advisor &a, bool fail) |
Cancel subscription of advisor a. | |
void | subscribe (Space &home, Propagator &p, PropCond pc, bool assigned, ModEvent me, bool schedule) |
Subscribe propagator p with propagation condition pc. | |
void | subscribe (Space &home, Advisor &a, bool assigned, bool fail) |
Subscribe advisor a to variable. | |
unsigned int | degree (void) const |
Return degree (number of subscribed propagators and advisors) | |
double | afc (void) const |
Return accumulated failure count (plus degree) | |
unsigned int | bits (void) const |
Provide access to free bits. | |
unsigned int & | bits (void) |
Provide access to free bits. | |
Protected Member Functions | |
FloatVarImp (Space &home, FloatVarImp &x) | |
Constructor for cloning x. | |
![]() | |
FloatVarImpBase (Gecode::Space &home, FloatVarImpBase &x) | |
Constructor for cloning x. | |
![]() | |
void | cancel (Space &home) |
Cancel all subscriptions when variable implementation is assigned. | |
bool | advise (Space &home, ModEvent me, Delta &d) |
Run advisors when variable implementation has been modified with modification event me and domain change d. | |
ModEvent | fail (Space &home) |
Run advisors to be run on failure and returns ME_GEN_FAILED. | |
void | schedule (Space &home, PropCond pc1, PropCond pc2, ModEvent me) |
Schedule subscribed propagators. | |
Protected Attributes | |
FloatVal | dom |
Domain information. | |
Value access | |
FloatVal | domain (void) const |
Return domain. | |
FloatNum | min (void) const |
Return minimum of domain. | |
FloatNum | max (void) const |
Return maximum of domain. | |
FloatVal | val (void) const |
Return value of domain (only if assigned) | |
FloatNum | med (void) const |
Return median of domain (closest representation) | |
FloatNum | size (void) const |
Return width of domain (distance between maximum and minimum) | |
Domain tests | |
bool | assigned (void) const |
Test whether variable is assigned. | |
bool | zero_in (void) const |
Test whether 0 is contained in domain. | |
bool | in (FloatNum n) const |
Test whether n is contained in domain. | |
bool | in (const FloatVal &n) const |
Test whether n is contained in domain. | |
Domain update by value | |
ModEvent | eq (Space &home, FloatNum n) |
Restrict domain values to be equal to n. | |
ModEvent | eq (Space &home, const FloatVal &n) |
Restrict domain values to be equal to n. | |
ModEvent | lq (Space &home, FloatNum n) |
Restrict domain values to be less or equal than n. | |
ModEvent | lq (Space &home, const FloatVal &n) |
Restrict domain values to be less or equal than n. | |
ModEvent | gq (Space &home, FloatNum n) |
Restrict domain values to be greater or equal than n. | |
ModEvent | gq (Space &home, const FloatVal &n) |
Restrict domain values to be greater or equal than n. | |
Dependencies | |
void | subscribe (Space &home, Propagator &p, PropCond pc, bool schedule=true) |
Subscribe propagator p with propagation condition pc to variable. | |
void | reschedule (Space &home, Propagator &p, PropCond pc) |
Re-schedule propagator p with propagation condition pc. | |
void | subscribe (Space &home, Advisor &a, bool fail) |
Subscribe advisor a to variable. | |
Cloning | |
FloatVarImp * | copy (Space &home) |
Return copy of this variable. | |
Variable implementation-dependent propagator support | |
static ModEventDelta | med (ModEvent me) |
Translate modification event me to modification event delta for view. | |
Delta information for advisors | |
static FloatNum | min (const Delta &d) |
Return minimum value just pruned. | |
static FloatNum | max (const Delta &d) |
Return maximum value just pruned. | |
Additional Inherited Members | |
![]() | |
static void | schedule (Gecode::Space &home, Gecode::Propagator &p, Gecode::ModEvent me) |
Schedule propagator p. | |
![]() | |
static void | schedule (Space &home, Propagator &p, ModEvent me, bool force=false) |
Schedule propagator p with modification event me. | |
static void | reschedule (Space &home, Propagator &p, PropCond pc, bool assigned, ModEvent me) |
Schedule propagator p. | |
static ModEvent | me (const ModEventDelta &med) |
Project modification event for this variable type from med. | |
static ModEventDelta | med (ModEvent me) |
Translate modification event me into modification event delta. | |
static ModEvent | me_combine (ModEvent me1, ModEvent me2) |
Combine modifications events me1 and me2. | |
static ModEvent | modevent (const Delta &d) |
Return modification event. | |
static void * | operator new (size_t, Space &) |
Allocate memory from space. | |
static void | operator delete (void *, Space &) |
Return memory to space. | |
static void | operator delete (void *) |
Needed for exceptions. | |
![]() | |
ActorLink ** | base |
Subscribed actors. | |
VarImp< Gecode::Float::FloatVarImpConf > * | fwd |
Forwarding pointer. | |
unsigned int | idx [pc_max+1] |
Indices of subscribed actors. | |
VarImp< Gecode::Float::FloatVarImpConf > * | next |
During cloning, points to the next copied variable. | |
Float variable implementation.
Definition at line 76 of file var-imp.hpp.
|
inlineprotected |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void Gecode::Float::FloatVarImp::subscribe | ( | Space & | home, |
Propagator & | p, | ||
PropCond | pc, | ||
bool | schedule = true ) |
void Gecode::Float::FloatVarImp::reschedule | ( | Space & | home, |
Propagator & | p, | ||
PropCond | pc ) |
|
inlinestatic |
|
inline |
|
protected |
Domain information.
Definition at line 79 of file var-imp.hpp.