Programming actors
[Functionality by programming task]
Classes | |
class | Gecode::ViewArray< View > |
View arrays. More... | |
class | Gecode::PropCost |
Propagation cost. More... | |
class | Gecode::Actor |
Base-class for both propagators and branchers. 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::Choice |
Choice for performing commit More... | |
class | Gecode::Brancher |
Base-class for branchers. More... | |
class | Gecode::BrancherHandle |
Handle for brancher. More... | |
Modules | |
Programming integer actors | |
Programming set actors | |
Programming float actors | |
Reified propagator patterns | |
Generic brancher based on view and value selection | |
Generic brancher based on view selection | |
Status of constraint propagation and branching commit | |
Propagator patterns | |
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(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(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::ActorProperty { Gecode::AP_DISPOSE = (1 << 0), Gecode::AP_WEAKLY = (1 << 1) } |
Actor properties. More... | |
Functions | |
void | Gecode::Space::notice (Actor &a, ActorProperty p, bool duplicate=false) |
Notice actor property. | |
void | Gecode::Space::ignore (Actor &a, ActorProperty p, bool duplicate=false) |
Ignore actor property. | |
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. |
Define Documentation
#define GECODE_ME_CHECK | ( | me | ) |
do { \ if (::Gecode::me_failed(me)) \ return ::Gecode::ES_FAILED; \ } while (0)
Check whether modification event me is failed, and forward failure.
To be used inside the propagate member function of a propagator or the commit member function of a brancher.
Definition at line 45 of file macros.hpp.
#define GECODE_ME_CHECK_MODIFIED | ( | modified, | |||
me | ) |
do { \ ModEvent __me__ ## __LINE__ = (me); \ if (::Gecode::me_failed(__me__ ## __LINE__)) \ return ::Gecode::ES_FAILED; \ modified |= ::Gecode::me_modified(__me__ ## __LINE__); \ } while (0)
Check whether me is failed or modified, and forward failure.
To be used inside the propagate member function of a propagator or the commit member function of a brancher.
Definition at line 57 of file macros.hpp.
#define GECODE_ME_FAIL | ( | me | ) |
do { \ if (::Gecode::me_failed(me)) { \ (home).fail(); \ return; \ }} while (0)
Check whether modification event me is failed, and fail space home.
To be used inside post functions.
Definition at line 70 of file macros.hpp.
#define GECODE_ES_CHECK | ( | es | ) |
do { \ ::Gecode::ExecStatus __es__ ## __LINE__ = (es); \ if (__es__ ## __LINE__ < ::Gecode::ES_OK) \ return __es__ ## __LINE__; \ } while (0)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
Definition at line 84 of file macros.hpp.
#define GECODE_ES_FAIL | ( | es | ) |
do { \ ::Gecode::ExecStatus __es__ ## __LINE__ = (es); \ assert(__es__ ## __LINE__ != ::Gecode::__ES_SUBSUMED); \ if (__es__ ## __LINE__ < ::Gecode::ES_OK) { \ (home).fail(); return; \ } \ } while (0)
Check whether execution status es is failed, and fail space home.
Definition at line 96 of file macros.hpp.
#define GECODE_REWRITE | ( | prop, | |||
post | ) |
do { \ 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 home.ES_SUBSUMED_DISPOSED(__p__ ## __LINE__,__s__ ## __LINE__); \ } while (0)
Rewrite propagator by executing post function.
Definition at line 109 of file macros.hpp.
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
Actor properties.
- Enumerator:
AP_DISPOSE Actor must always be disposed.
Normally, a propagator will not be disposed if its home space is deleted. However, if an actor uses external resources, this property can be used to make sure that the actor will always be disposed.
AP_WEAKLY Propagator is only weakly monotonic, that is, the propagator is only monotonic on assignments.
Function Documentation
void Gecode::Space::notice | ( | Actor & | a, | |
ActorProperty | p, | |||
bool | duplicate = false | |||
) | [inherited] |
void Gecode::Space::ignore | ( | Actor & | a, | |
ActorProperty | p, | |||
bool | duplicate = false | |||
) | [inherited] |
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] |
Check whether modification event me is failed.
Definition at line 58 of file modevent.hpp.
bool Gecode::me_modified | ( | ModEvent | me | ) | [inline] |
Check whether modification event me describes variable modification.
Definition at line 63 of file modevent.hpp.