34#ifndef __GECODE_SEARCH_SEQ_PATH_HH__
35#define __GECODE_SEARCH_SEQ_PATH_HH__
59 template<
class Tracer>
64 typedef typename Tracer::ID
ID;
91 unsigned int alt(
void)
const;
93 unsigned int truealt(
void)
const;
101 bool lao(
void)
const;
104 unsigned int nid(
void)
const;
116 Path(
unsigned int l);
118 unsigned int ngdl(
void)
const;
120 void ngdl(
unsigned int l);
128 bool empty(
void)
const;
140 const Space& best,
int& mark,
Choice for performing commit
Search tree edge for recomputation
Space * space(void) const
Return space for edge.
Space * _space
Space corresponding to this edge (might be NULL)
unsigned int alt(void) const
Return number for alternatives.
Edge(void)
Default constructor.
bool rightmost(void) const
Test whether current alternative is rightmost.
void next(void)
Move to next alternative.
bool leftmost(void) const
Test whether current alternative is leftmost.
bool lao(void) const
Test whether current alternative was LAO.
void dispose(void)
Free memory for edge.
unsigned int truealt(void) const
Return true number for alternatives (excluding lao optimization)
unsigned int nid(void) const
Return node identifier.
const Choice * _choice
Choice.
const Choice * choice(void) const
Return choice.
unsigned int _alt
Current alternative.
unsigned int _ngdl
Depth limit for no-good generation.
void unwind(int l, Tracer &t)
Unwind the stack up to position l (after failure)
Tracer::ID ID
Node identity type.
bool empty(void) const
Test whether path is empty.
int entries(void) const
Return number of entries on stack.
int lc(void) const
Return position on stack of last copy.
void next(void)
Generate path for next node.
virtual void post(Space &home) const
Post no-goods.
void commit(Space *s, int i) const
Commit space s as described by stack entry at position i.
unsigned int ngdl(void) const
Return no-good depth limit.
Support::DynamicStack< Edge, Heap > ds
Stack to store edge information.
Path(unsigned int l)
Initialize with no-good depth limit l.
Edge & top(void) const
Provide access to topmost edge.
void reset(void)
Reset stack.
const Choice * push(Worker &stat, Space *s, Space *c, unsigned int nid)
Push space c (a clone of s or NULL)
Space * recompute(unsigned int &d, unsigned int a_d, Worker &s, Tracer &t)
Recompute space according to path.
Stack with arbitrary number of elements.
Gecode toplevel namespace
#define GECODE_VTABLE_EXPORT