Generated on Thu Jul 6 07:06:53 2006 for Gecode by doxygen 1.4.7

Programming search engines
[Functionality by programming task]

Collaboration diagram for Programming search engines:


Enumerations

enum  Gecode::SpaceStatus { Gecode::SS_FAILED, Gecode::SS_SOLVED, Gecode::SS_BRANCH }
 Space status More...

Functions

SpaceStatus Gecode::Space::status (unsigned int &a=unused_ui, unsigned long int &pn=unused_uli)
 Query space status.
Space * Gecode::Space::clone (bool share=true, unsigned long int &pn=unused_uli)
 Clone space.
void Gecode::Space::commit (unsigned int a, BranchingDesc *d=NULL, unsigned long int &pn=unused_uli)
 Commit space to alternative.
BranchingDesc * Gecode::Space::description (void) const
 Get branching description for current branching.
void Gecode::Space::flush (void)
 Flush cache datastructures in actors.


Enumeration Type Documentation

Space status

Enumerator:
SS_FAILED  Space is failed
SS_SOLVED  Space is solved (no branching left)
SS_BRANCH  Space must be branched (at least one branching left)

Definition at line 567 of file core.icc.


Function Documentation

SpaceStatus Gecode::Space::status ( unsigned int &  a = unused_ui,
unsigned long int &  pn = unused_uli 
) [inherited]

Query space status.

Propagates the space until fixpoint or failure and increments pn by the number of propagator executions.

Definition at line 250 of file core.cc.

Space * Gecode::Space::clone ( bool  share = true,
unsigned long int &  pn = unused_uli 
) [inherited]

Clone space.

Propagates the space until fixpoint and increments pn by the number of propagator executions. If propagation results in a failed space, an exception of type SpaceFailed is thrown.

Otherwise, a clone of the space is returned. If shared is true, sharable datastructures are shared among the clone and the original space. If shared is false, independent copies of the shared datastructures must be created. This means that a clone with no sharing can be used in a different thread without any interaction with the original space.

Definition at line 368 of file core.cc.

void Gecode::Space::commit ( unsigned int  a,
BranchingDesc d = NULL,
unsigned long int &  pn = unused_uli 
) [inherited]

Commit space to alternative.

Computes according to whether a branching description d is passed (d == NULL means no branching description).

  • if no branching description is provided, the space is propagated until fixpoint and pn is incremented by the number of propagator executions performed. Then the current branching is committed to alternative a.
  • if a branching description is provided, no propagation is perfomed (to support batch recomputation) and the current branching is commited to alternative a with branching description d. Note that committing with branching descriptions must be carried out in the same order as the branch descriptions have been obtained.

Committing throws the following exceptions:

  • SpaceFailed, if the space is failed (or becomes failed through propagation).
  • SpaceNoBranching, if the space has no current branching (it is already solved).
  • SpaceIllegalAlternative, if a is not smaller than the number of laternatives provided by the branching.

Definition at line 262 of file core.cc.

BranchingDesc * Gecode::Space::description ( void   )  const [inline, inherited]

Get branching description for current branching.

If applied to a space with no current branching, the system will crash.

Definition at line 1069 of file core.icc.

void Gecode::Space::flush ( void   )  [inherited]

Flush cache datastructures in actors.

Flushes caches of actors in the space. This is useful to free memory (in particular when considering a space to be stored for later use such as during search). Even better is to make a clone of the space.

Definition at line 68 of file core.cc.