Programming actors
[Functionality by programming task]
Modules | |
Programming integer actors | |
Programming set actors | |
Programming CpltSet actors | |
Reified propagator patterns | |
Generic branching based on view and value selection | |
Status of constraint propagation and branching commit | |
Propagator patterns | |
Patterns for set propagators | |
Classes | |
class | Gecode::ViewArray< View > |
View arrays. More... | |
class | Gecode::Actor |
Base-class for both propagators and branchings. More... | |
class | Gecode::Propagator |
Base-class for propagators. More... | |
class | Gecode::Council< A > |
Council of advisors. More... | |
class | Gecode::Advisors< A > |
Class to iterate over advisors of a council. More... | |
class | Gecode::Advisor |
Base-class for advisors. More... | |
class | Gecode::BranchingDesc |
Branch description for batch recomputation. More... | |
class | Gecode::Branching |
Base-class for branchings. More... | |
Defines | |
#define | GECODE_ME_CHECK(me) |
Check whether modification event me is failed, and forward failure. | |
#define | GECODE_ME_CHECK_MODIFIED(modified, me) |
Check whether me is failed or modified, and forward failure. | |
#define | GECODE_ME_FAIL(home, me) |
Check whether modification event me is failed, and fail space home. | |
#define | GECODE_ES_CHECK(es) |
Check whether execution status es is failed or subsumed, and forward failure or subsumption. | |
#define | GECODE_ES_FAIL(home, es) |
Check whether execution status es is failed, and fail space home. | |
#define | GECODE_REWRITE(prop, post) |
Rewrite propagator by executing post function. | |
Typedefs | |
typedef int | Gecode::ModEventDelta |
Modification event deltas. | |
Enumerations | |
enum | Gecode::PropCost { Gecode::PC_CRAZY_LO = 0, Gecode::PC_CRAZY_HI = 0, Gecode::PC_CUBIC_LO = 1, Gecode::PC_CUBIC_HI = 1, Gecode::PC_QUADRATIC_LO = 2, Gecode::PC_QUADRATIC_HI = 2, Gecode::PC_LINEAR_HI = 3, Gecode::PC_LINEAR_LO = 4, Gecode::PC_TERNARY_HI = 5, Gecode::PC_BINARY_HI = 6, Gecode::PC_TERNARY_LO = 6, Gecode::PC_BINARY_LO = 7, Gecode::PC_UNARY_LO = 7, Gecode::PC_UNARY_HI = 7, Gecode::PC_MAX = 7 } |
Classification of propagation cost. More... | |
enum | Gecode::PropKind { Gecode::PK_DEF, Gecode::PK_SPEED, Gecode::PK_MEMORY } |
Propagation kind. More... | |
Functions | |
void | Gecode::Space::fail (void) |
Fail space. | |
bool | Gecode::Space::failed (void) const |
Check whether space is failed. | |
bool | Gecode::Space::stable (void) const |
Return if space is stable (at fixpoint or failed). | |
bool | Gecode::me_failed (ModEvent me) |
Check whether modification event me is failed. | |
bool | Gecode::me_modified (ModEvent me) |
Check whether modification event me describes variable modification. | |
PropCost | Gecode::cost_lo (int n, PropCost pc) |
Dynamic low-propagation cost computation. | |
PropCost | Gecode::cost_hi (int n, PropCost pc) |
Dynamic high-propagation cost computation. |
Define Documentation
#define GECODE_ME_CHECK | ( | me | ) |
Value:
if (::Gecode::me_failed(me)) \ return ::Gecode::ES_FAILED;
To be used inside the propagate member function of a propagator or the commit member function of a branching.
Definition at line 45 of file macros.icc.
#define GECODE_ME_CHECK_MODIFIED | ( | modified, | |||
me | ) |
Value:
{ \ ModEvent __me__ ## __LINE__ = (me); \ if (::Gecode::me_failed(__me__ ## __LINE__)) \ return ::Gecode::ES_FAILED; \ modified |= ::Gecode::me_modified(__me__ ## __LINE__); \ }
To be used inside the propagate member function of a propagator or the commit member function of a branching.
Definition at line 56 of file macros.icc.
#define GECODE_ME_FAIL | ( | home, | |||
me | ) |
Value:
if (::Gecode::me_failed(me)) { \ (home)->fail(); \ return; \ }
To be used inside post functions.
Definition at line 69 of file macros.icc.
#define GECODE_ES_CHECK | ( | es | ) |
Value:
{ \ ::Gecode::ExecStatus __es__ ## __LINE__ = (es); \ if (__es__ ## __LINE__ < ::Gecode::ES_OK) \ return __es__ ## __LINE__; \ }
Definition at line 83 of file macros.icc.
#define GECODE_ES_FAIL | ( | home, | |||
es | ) |
Value:
{ \ ::Gecode::ExecStatus __es__ ## __LINE__ = (es); \ assert(__es__ ## __LINE__ != ::Gecode::__ES_SUBSUMED); \ if (__es__ ## __LINE__ < ::Gecode::ES_OK) { \ (home)->fail(); return; \ } \ }
Definition at line 95 of file macros.icc.
#define GECODE_REWRITE | ( | prop, | |||
post | ) |
Value:
{ \ Propagator* __p__ ## __LINE__ = (prop); \ size_t __s__ ## __LINE__ = __p__ ## __LINE__->dispose((home)); \ ExecStatus __es__ ## __LINE__ = (post); \ if (__es__ ## __LINE__ != ::Gecode::ES_OK) \ return ::Gecode::ES_FAILED; \ return ES_SUBSUMED(__p__ ## __LINE__,__s__ ## __LINE__); \ }
Definition at line 108 of file macros.icc.
Typedef Documentation
typedef int Gecode::ModEventDelta |
Modification event deltas.
Modification event deltas are used by propagators. A propagator stores a modification event for each variable type. They can be accessed through a variable or a view from a given propagator. They can be constructed from a given modevent by a variable or view.
Enumeration Type Documentation
enum Gecode::PropCost |
Classification of propagation cost.
- Enumerator:
enum Gecode::PropKind |
Propagation kind.
Signals that a particular kind is used in propagation for the implementation of a particular constraint.
- Enumerator:
-
PK_DEF Make a default decision. PK_SPEED Prefer speed over memory consumption. PK_MEMORY Prefer little memory over speed.
Definition at line 50 of file propagator.icc.
Function Documentation
void Gecode::Space::fail | ( | void | ) | [inline, inherited] |
bool Gecode::Space::failed | ( | void | ) | const [inline, inherited] |
bool Gecode::Space::stable | ( | void | ) | const [inline, inherited] |
bool Gecode::me_failed | ( | ModEvent | me | ) | [inline] |
bool Gecode::me_modified | ( | ModEvent | me | ) | [inline] |
Check whether modification event me describes variable modification.
Definition at line 63 of file modevent.icc.
PropCost Gecode::cost_lo | ( | int | n, | |
PropCost | pc | |||
) | [inline] |
Dynamic low-propagation cost computation.
If n is less than 4, use constant low-costs, otherwise use pc.
Definition at line 350 of file propagator.icc.
PropCost Gecode::cost_hi | ( | int | n, | |
PropCost | pc | |||
) | [inline] |
Dynamic high-propagation cost computation.
If n is less than 4, use constant hight-costs, otherwise use pc.
Definition at line 357 of file propagator.icc.