Generated on Wed Nov 1 15:04:55 2006 for Gecode by doxygen 1.4.5

Programming actors
[Functionality by programming task]

Collaboration diagram for Programming actors:


Modules

 Programming integer actors
 Programming set actors
 Reified propagator patterns
 Generic branching based on view and value selection
 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::BranchingDesc
 Branch description for batch recomputation. More...
class  Gecode::Branching
 Base-class for branchings. More...

Partial fixpoints

ExecStatus Gecode::Propagator::ES_FIX_PARTIAL (PropModEvent pme)
 Propagator has computed partial fixpoint
ExecStatus Gecode::Propagator::ES_NOFIX_PARTIAL (PropModEvent pme)
 Propagator has not computed partial fixpoint

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, and forward failure.
#define GECODE_ES_FAIL(home, es)
 Check whether execution status es is failed, and fail space home.

Typedefs

typedef int Gecode::PropModEvent
 Propagator modification events.

Enumerations

enum  Gecode::ExecStatus {
  Gecode::ES_FAILED = -1, Gecode::ES_NOFIX = 0, Gecode::ES_OK = 0, Gecode::ES_FIX = 1,
  Gecode::ES_SUBSUMED = 2, Gecode::__ES_FIX_PARTIAL = 3, Gecode::__ES_NOFIX_PARTIAL = 4
}
 Status of constraint propagation and branching commit. More...
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...

Functions

void Gecode::Space::fail (void)
 Fail space.
bool Gecode::Space::failed (void) const
 Check whether space is 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:

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 branching.

Definition at line 29 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__); \
  }
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 branching.

Definition at line 40 of file macros.icc.

#define GECODE_ME_FAIL home,
me   ) 
 

Value:

if (::Gecode::me_failed(me)) {          \
    (home)->fail();                             \
    return;                                     \
  }
Check whether modification event me is failed, and fail space home.

To be used inside post functions.

Definition at line 53 of file macros.icc.

#define GECODE_ES_CHECK es   ) 
 

Value:

Check whether execution status es is failed, and forward failure.

Definition at line 65 of file macros.icc.

#define GECODE_ES_FAIL home,
es   ) 
 

Value:

if ((es) < ::Gecode::ES_OK) {           \
    (home)->fail();                     \
    return;                             \
  }
Check whether execution status es is failed, and fail space home.

Definition at line 73 of file macros.icc.


Typedef Documentation

typedef int Gecode::PropModEvent
 

Propagator modification events.

Propagator modification events 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.

Definition at line 171 of file core.icc.


Enumeration Type Documentation

enum Gecode::ExecStatus
 

Status of constraint propagation and branching commit.

Enumerator:
ES_FAILED  Execution has resulted in failure.
ES_NOFIX  Propagation has not computed fixpoint.
ES_OK  Execution is okay.
ES_FIX  Propagation has computed fixpoint.
ES_SUBSUMED  Propagator is subsumed (entailed)
__ES_FIX_PARTIAL  Internal: do not use.
__ES_NOFIX_PARTIAL  Internal: do not use.

Definition at line 310 of file core.icc.

enum Gecode::PropCost
 

Classification of propagation cost.

Enumerator:
PC_CRAZY_LO  Exponential complexity, cheap.
PC_CRAZY_HI  Exponential complexity, expensive.
PC_CUBIC_LO  Cubic complexity, cheap.
PC_CUBIC_HI  Cubic complexity, expensive.
PC_QUADRATIC_LO  Quadratic complexity, cheap.
PC_QUADRATIC_HI  Quadratic complexity, expensive.
PC_LINEAR_HI  Linear complexity, expensive.
PC_LINEAR_LO  Linear complexity, cheap.
PC_TERNARY_HI  Three variables, expensive.
PC_BINARY_HI  Two variables, expensive.
PC_TERNARY_LO  Three variables, cheap.
PC_BINARY_LO  Two variables, cheap.
PC_UNARY_LO  Only single variable, cheap.
PC_UNARY_HI  Only single variable, expensive.
PC_MAX  Maximal cost value.

Definition at line 324 of file core.icc.


Function Documentation

ExecStatus Gecode::Propagator::ES_FIX_PARTIAL PropModEvent  pme  )  [inline, protected, inherited]
 

Propagator has computed partial fixpoint

Set propagator modification events after processing of variables to pme.

Warning:
Has a side-effect on the propagator. Overwrites the propagator modification events of a propagator. Use only directly with returning from propagation.

Definition at line 1461 of file core.icc.

ExecStatus Gecode::Propagator::ES_NOFIX_PARTIAL PropModEvent  pme  )  [inline, protected, inherited]
 

Propagator has not computed partial fixpoint

Set propagator modification events before processing of variables to pme.

Warning:
Has a side-effect on the propagator. Overwrites the propagator modification events of a propagator. Use only directly with returning from propagation.

Definition at line 1466 of file core.icc.

void Gecode::Space::fail void   )  [inline, inherited]
 

Fail space.

This is useful for failing outside of actors. Never use inside a propagate or commit member function. The system will crash!

Definition at line 1420 of file core.icc.

bool Gecode::Space::failed void   )  const [inline, inherited]
 

Check whether space is failed.

Note that this does not perform propagation. This is useful for posting actors: only if a space is not yet failed, new actors are allowed to be created.

Definition at line 1148 of file core.icc.

bool Gecode::me_failed ModEvent  me  )  [inline]
 

Check whether modification event me is failed.

Definition at line 42 of file modevent.icc.

bool Gecode::me_modified ModEvent  me  )  [inline]
 

Check whether modification event me describes variable modification.

Definition at line 47 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 268 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 275 of file propagator.icc.