No-good literal recorded during search. More...
#include <core.hpp>
Public Types | |
enum | Status { FAILED , SUBSUMED , NONE } |
The status of a no-good literal. More... | |
Public Member Functions | |
NGL (void) | |
Constructor for creation. | |
NGL (Space &home) | |
Constructor for creation. | |
NGL (Space &home, NGL &ngl) | |
Constructor for cloning ngl. | |
virtual void | subscribe (Space &home, Propagator &p)=0 |
Subscribe propagator p to all views of the no-good literal. | |
virtual void | cancel (Space &home, Propagator &p)=0 |
Cancel propagator p from all views of the no-good literal. | |
virtual void | reschedule (Space &home, Propagator &p)=0 |
Schedule propagator p for all views of the no-good literal. | |
virtual NGL::Status | status (const Space &home) const =0 |
Test the status of the no-good literal. | |
virtual ExecStatus | prune (Space &home)=0 |
Propagate the negation of the no-good literal. | |
virtual NGL * | copy (Space &home)=0 |
Create copy. | |
virtual bool | notice (void) const |
Whether dispose must always be called (returns false) | |
virtual size_t | dispose (Space &home) |
Dispose. | |
Internal management routines | |
bool | leaf (void) const |
Test whether literal is a leaf. | |
NGL * | next (void) const |
Return pointer to next literal. | |
void | leaf (bool l) |
Mark literal as leaf or not. | |
void | next (NGL *n) |
Set pointer to next literal | |
NGL * | add (NGL *n, bool l) |
Add node n and mark it as leaf l and return n. | |
Memory management | |
virtual | ~NGL (void) |
To avoid warnings. | |
static void * | operator new (size_t s, Space &home) |
Allocate memory from space. | |
static void | operator delete (void *s, Space &home) |
Return memory to space. | |
static void | operator delete (void *p) |
Needed for exceptions. | |
static void * | operator new (size_t s) |
Not used. | |
enum Gecode::NGL::Status |
|
inline |
|
inline |
|
pure virtual |
Subscribe propagator p to all views of the no-good literal.
Implemented in Gecode::Search::NoNGL, Gecode::ViewValNGL< View, Val, pc >, Gecode::ViewValNGL< SetView, int, PC_SET_ANY >, Gecode::ViewValNGL< View, int, PC_INT_BND >, Gecode::ViewValNGL< View, int, PC_INT_DOM >, and Gecode::ViewValNGL< View, int, PC_INT_VAL >.
|
pure virtual |
Cancel propagator p from all views of the no-good literal.
Implemented in Gecode::Search::NoNGL, Gecode::ViewValNGL< View, Val, pc >, Gecode::ViewValNGL< SetView, int, PC_SET_ANY >, Gecode::ViewValNGL< View, int, PC_INT_BND >, Gecode::ViewValNGL< View, int, PC_INT_DOM >, and Gecode::ViewValNGL< View, int, PC_INT_VAL >.
|
pure virtual |
Schedule propagator p for all views of the no-good literal.
Implemented in Gecode::Search::NoNGL, Gecode::ViewValNGL< View, Val, pc >, Gecode::ViewValNGL< SetView, int, PC_SET_ANY >, Gecode::ViewValNGL< View, int, PC_INT_BND >, Gecode::ViewValNGL< View, int, PC_INT_DOM >, and Gecode::ViewValNGL< View, int, PC_INT_VAL >.
|
pure virtual |
Test the status of the no-good literal.
Implemented in Gecode::Int::Branch::EqNGL< View >, Gecode::Int::Branch::GqNGL< View >, Gecode::Int::Branch::LqNGL< View >, Gecode::Int::Branch::NqNGL< View >, Gecode::Search::NoNGL, Gecode::Set::Branch::ExcNGL, and Gecode::Set::Branch::IncNGL.
|
pure virtual |
Propagate the negation of the no-good literal.
Implemented in Gecode::Int::Branch::EqNGL< View >, Gecode::Int::Branch::GqNGL< View >, Gecode::Int::Branch::LqNGL< View >, Gecode::Int::Branch::NqNGL< View >, Gecode::Search::NoNGL, Gecode::Set::Branch::ExcNGL, and Gecode::Set::Branch::IncNGL.
|
virtual |
|
inlinevirtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
static |
Not used.