Gecode::NGL Class Referenceabstract

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.

## Detailed Description

No-good literal recorded during search.

Definition at line 1340 of file core.hpp.

## Member Enumeration Documentation

## Status

enum Gecode::NGL::Status

The status of a no-good literal.

Enumerator
FAILED | The literal is failed.
SUBSUMED | The literal is subsumed.
NONE | The literal is neither failed nor subsumed.

Definition at line 1346 of file core.hpp.

## Constructor & Destructor Documentation

## NGL() [1/3]

Gecode::NGL::NGL | ( | void |  | ) |

inline

Constructor for creation.

Definition at line 3812 of file core.hpp.

## NGL() [2/3]

Gecode::NGL::NGL | ( | Space & | home | ) |

inline

Constructor for creation.

Definition at line 3815 of file core.hpp.

## NGL() [3/3]

Gecode::NGL::NGL | ( | Space & | home,
|  | NGL & | ngl )

inline

Constructor for cloning ngl.

Definition at line 3818 of file core.hpp.

## ~NGL()

Gecode::NGL::~NGL | ( | void |  | ) |

virtual

To avoid warnings.

Definition at line 900 of file core.cpp.

## Member Function Documentation

## subscribe()

virtual void Gecode::NGL::subscribe | ( | Space & | home,
|  | Propagator & | p )

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 >.

## cancel()

virtual void Gecode::NGL::cancel | ( | Space & | home,
|  | Propagator & | p )

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 >.

## reschedule()

virtual void Gecode::NGL::reschedule | ( | Space & | home,
|  | Propagator & | p )

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 >.

## status()

virtual NGL::Status Gecode::NGL::status | ( | const Space & | home | ) | const

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.

## prune()

virtual ExecStatus Gecode::NGL::prune | ( | Space & | home | ) |

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.

## copy()

virtual NGL * Gecode::NGL::copy | ( | Space & | home | ) |

pure virtual

Create copy.

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.

## notice()

bool Gecode::NGL::notice | ( | void |  | ) | const

virtual

Whether dispose must always be called (returns false).

Definition at line 896 of file core.cpp.

## dispose()

size_t Gecode::NGL::dispose | ( | Space & | home | ) |

inline virtual

Dispose.

Reimplemented in 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 >.

Definition at line 3821 of file core.hpp.

## leaf() [1/2]

bool Gecode::NGL::leaf | ( | void |  | ) | const

inline

Test whether literal is a leaf.

Definition at line 3789 of file core.hpp.

## next() [1/2]

NGL * Gecode::NGL::next | ( | void |  | ) | const

inline

Return pointer to next literal.

Definition at line 3793 of file core.hpp.

## leaf() [2/2]

void Gecode::NGL::leaf | ( | bool | l | ) |

inline

Mark literal as leaf or not.

Definition at line 3797 of file core.hpp.

## next() [2/2]

void Gecode::NGL::next | ( | NGL * | n | ) |

inline

Set pointer to next literal

Definition at line 3801 of file core.hpp.

## add()

NGL * Gecode::NGL::add | ( | NGL * | n,
|  | bool | l )

inline

Add node n and mark it as leaf l and return n.

Definition at line 3805 of file core.hpp.

## operator new() [1/2]

void * Gecode::NGL::operator new | ( | size_t | s,
|  | Space & | home )

inline static

Allocate memory from space.

Definition at line 3042 of file core.hpp.

## operator delete() [1/2]

void Gecode::NGL::operator delete | ( | void * | s,
|  | Space & | home )

inline static

Return memory to space.

Definition at line 3040 of file core.hpp.

## operator delete() [2/2]

void Gecode::NGL::operator delete | ( | void * | p | ) |

inline static

Needed for exceptions.

Definition at line 3038 of file core.hpp.

## operator new() [2/2]

void * Gecode::NGL::operator new | ( | size_t | s | ) |

static

Not used.

The documentation for this class was generated from the following files:

- gecode/kernel/core.hpp
- gecode/kernel/core.cpp