Gecode::Space Class Reference
Computation spaces. More...
#include <core.hpp>
Classes | |
class | Branchers |
Class to iterate over branchers of a space. More... | |
class | Propagators |
Class to iterate over propagators of a space. More... | |
Public Member Functions | |
Space (void) | |
Default constructor. | |
virtual | ~Space (void) |
Destructor. | |
Space (bool share, Space &s) | |
Constructor for cloning. | |
virtual Space * | copy (bool share)=0 |
Copying member function. | |
virtual void | constrain (const Space &best) |
Constrain function for best solution search. | |
SpaceStatus | status (StatusStatistics &stat=unused_status) |
Query space status. | |
const Choice * | choice (void) |
Create new choice for current brancher. | |
const Choice * | choice (Archive &e) const |
Create new choice from e. | |
Space * | clone (bool share=true, CloneStatistics &stat=unused_clone) const |
Clone space. | |
void | commit (const Choice &c, unsigned int a, CommitStatistics &stat=unused_commit) |
Commit choice c for alternative a. | |
void | notice (Actor &a, ActorProperty p) |
Notice actor property. | |
void | ignore (Actor &a, ActorProperty p) |
Ignore actor property. | |
ExecStatus | ES_SUBSUMED (Propagator &p) |
Propagator p is subsumed | |
ExecStatus | ES_SUBSUMED_DISPOSED (Propagator &p, size_t s) |
Propagator p is subsumed | |
ExecStatus | ES_FIX_PARTIAL (Propagator &p, const ModEventDelta &med) |
Propagator p has computed partial fixpoint | |
ExecStatus | ES_NOFIX_PARTIAL (Propagator &p, const ModEventDelta &med) |
Propagator p has not computed partial fixpoint | |
template<class A > | |
ExecStatus | ES_FIX_DISPOSE (Council< A > &c, A &a) |
Advisor a must be disposed | |
template<class A > | |
ExecStatus | ES_NOFIX_DISPOSE (Council< A > &c, A &a) |
Advisor a must be disposed and its propagator must be run | |
template<class A > | |
ExecStatus | ES_NOFIX_DISPOSE_FORCE (Council< A > &c, A &a) |
Advisor a must be disposed and its propagator must be forcefully rescheduled | |
void | fail (void) |
Fail space. | |
bool | failed (void) const |
Check whether space is failed. | |
bool | stable (void) const |
Return if space is stable (at fixpoint or failed). | |
unsigned int | propagators (void) const |
Return number of propagators. | |
unsigned int | branchers (void) const |
Return number of branchers. | |
template<class T > | |
T * | alloc (long unsigned int n) |
Allocate block of n objects of type T from space heap. | |
template<class T > | |
T * | alloc (long int n) |
Allocate block of n objects of type T from space heap. | |
template<class T > | |
T * | alloc (unsigned int n) |
Allocate block of n objects of type T from space heap. | |
template<class T > | |
T * | alloc (int n) |
Allocate block of n objects of type T from space heap. | |
template<class T > | |
void | free (T *b, long unsigned int n) |
Delete n objects allocated from space heap starting at b. | |
template<class T > | |
void | free (T *b, long int n) |
Delete n objects allocated from space heap starting at b. | |
template<class T > | |
void | free (T *b, unsigned int n) |
Delete n objects allocated from space heap starting at b. | |
template<class T > | |
void | free (T *b, int n) |
Delete n objects allocated from space heap starting at b. | |
template<class T > | |
T * | realloc (T *b, long unsigned int n, long unsigned int m) |
Reallocate block of n objects starting at b to m objects of type T from the space heap. | |
template<class T > | |
T * | realloc (T *b, long int n, long int m) |
Reallocate block of n objects starting at b to m objects of type T from the space heap. | |
template<class T > | |
T * | realloc (T *b, unsigned int n, unsigned int m) |
Reallocate block of n objects starting at b to m objects of type T from the space heap. | |
template<class T > | |
T * | realloc (T *b, int n, int m) |
Reallocate block of n objects starting at b to m objects of type T from the space heap. | |
template<class T > | |
T ** | realloc (T **b, long unsigned int n, long unsigned int m) |
Reallocate block of n pointers starting at b to m objects of type T* from the space heap. | |
template<class T > | |
T ** | realloc (T **b, long int n, long int m) |
Reallocate block of n pointers starting at b to m objects of type T* from the space heap. | |
template<class T > | |
T ** | realloc (T **b, unsigned int n, unsigned int m) |
Reallocate block of n pointers starting at b to m objects of type T* from the space heap. | |
template<class T > | |
T ** | realloc (T **b, int n, int m) |
Reallocate block of n pointers starting at b to m objects of type T* from the space heap. | |
void * | ralloc (size_t s) |
Allocate memory on space heap. | |
void | rfree (void *p, size_t s) |
Free memory previously allocated with alloc (might be reused later). | |
void * | rrealloc (void *b, size_t n, size_t m) |
Reallocate memory block starting at b from size n to size s. | |
template<size_t > | |
void * | fl_alloc (void) |
Allocate from freelist-managed memory. | |
template<size_t > | |
void | fl_dispose (FreeList *f, FreeList *l) |
Return freelist-managed memory to freelist. | |
size_t | allocated (void) const |
Return how much heap memory is allocated. | |
void | flush (void) |
Flush cached memory blocks and AFC information. | |
Static Public Member Functions | |
static void * | operator new (size_t) |
Allocate memory from heap for new space. | |
static void | operator delete (void *) |
Free memory allocated from heap. | |
Conversion from Space to Home | |
| |
Home | operator() (Propagator &p) |
Return a home for this space with the information that p is being rewritten. | |
| |
template<class T > | |
T & | construct (void) |
Construction routines. | |
template<class T , typename A1 > | |
T & | construct (A1 const &a1) |
Constructs a single object of type T from space heap using a unary constructor. | |
template<class T , typename A1 , typename A2 > | |
T & | construct (A1 const &a1, A2 const &a2) |
Constructs a single object of type T from space heap using a binary constructor. | |
template<class T , typename A1 , typename A2 , typename A3 > | |
T & | construct (A1 const &a1, A2 const &a2, A3 const &a3) |
Constructs a single object of type T from space heap using a ternary constructor. | |
template<class T , typename A1 , typename A2 , typename A3 , typename A4 > | |
T & | construct (A1 const &a1, A2 const &a2, A3 const &a3, A4 const &a4) |
Constructs a single object of type T from space heap using a quaternary constructor. | |
template<class T , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 > | |
T & | construct (A1 const &a1, A2 const &a2, A3 const &a3, A4 const &a4, A5 const &a5) |
Constructs a single object of type T from space heap using a quinary constructor. |
Detailed Description
Computation spaces.
Definition at line 1180 of file core.hpp.
Member Function Documentation
unsigned int Gecode::Space::propagators | ( | void | ) | const |
unsigned int Gecode::Space::branchers | ( | void | ) | const |
Home Gecode::Space::operator() | ( | Propagator & | p | ) | [inline] |
template<class T >
T & Gecode::Space::construct | ( | void | ) | [inline] |
template<class T , typename A1 >
T & Gecode::Space::construct | ( | A1 const & | a1 | ) | [inline] |
template<class T , typename A1 , typename A2 >
T & Gecode::Space::construct | ( | A1 const & | a1, | |
A2 const & | a2 | |||
) | [inline] |
template<class T , typename A1 , typename A2 , typename A3 >
T & Gecode::Space::construct | ( | A1 const & | a1, | |
A2 const & | a2, | |||
A3 const & | a3 | |||
) | [inline] |
template<class T , typename A1 , typename A2 , typename A3 , typename A4 >
T & Gecode::Space::construct | ( | A1 const & | a1, | |
A2 const & | a2, | |||
A3 const & | a3, | |||
A4 const & | a4 | |||
) | [inline] |
template<class T , typename A1 , typename A2 , typename A3 , typename A4 , typename A5 >
T & Gecode::Space::construct | ( | A1 const & | a1, | |
A2 const & | a2, | |||
A3 const & | a3, | |||
A4 const & | a4, | |||
A5 const & | a5 | |||
) | [inline] |
Member Data Documentation
Cost level with next propagator to be executed.
This maintains the following invariant (but only if the space does not perform propagation):
- If active points to a queue, this queue might contain a propagator. However, there will be at least one queue containing a propagator.
- Otherwise, active is smaller than the first queue or larger than the last queue. Then, the space is stable.
- If active is larger than the last queue, the space is failed.
ActorLink Gecode::Space::queue[PropCost::AC_MAX+1] |
unsigned int Gecode::Space::branch_id |
unsigned int Gecode::Space::n_sub |
struct { ... } Gecode::Space::p |
Data only available during propagation.
struct { ... } Gecode::Space::c |
Data available only during copying.
The documentation for this class was generated from the following files:
- gecode/kernel/core.hpp (Revision: 12538)
- gecode/kernel/core.cpp (Revision: 12001)
- gecode/kernel/var-imp.hpp