Generated on Mon Aug 25 11:35:46 2008 for Gecode by doxygen 1.5.6

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:

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 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__); \
  }
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 56 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 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__;                        \
  }
Check whether execution status es is failed or subsumed, and forward failure or subsumption.

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;                                   \
    }                                                           \
  }
Check whether execution status es is failed, and fail space home.

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__);              \
}
Rewrite propagator by executing post function.

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.

Definition at line 166 of file core.icc.


Enumeration Type Documentation

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 489 of file core.icc.

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]

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 1939 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 1944 of file core.icc.

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

Return if space is stable (at fixpoint or failed).

Definition at line 1949 of file core.icc.

bool Gecode::me_failed ( ModEvent  me  )  [inline]

Check whether modification event me is failed.

Definition at line 58 of file modevent.icc.

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.