Gecode::Int::Extensional::PosCompact< View, Table > Class Template Reference
Other available functionality » Integer propagators

Domain consistent positive extensional propagator. More...

`#include <extensional.hh>`

## Classes

class | Status
| Status management. More...

## Public Types

typedef Compact< View, true >::ValidSupports | ValidSupports
typedef Compact< View, true >::Range | Range
typedef Compact< View, true >::CTAdvisor | CTAdvisor
typedef Compact< View, true >::LostSupports | LostSupports

## Status management

enum | StatusType { SINGLE = 0 , MULTIPLE = 1 , NONE = 2 , PROPAGATING = 3 }
| Type of status. More...
Status | status
| Propagator status.
Table | table
| Current table.
bool | empty (void) const
| Check whether the table is empty.
template<class TableProp>
| PosCompact (Space &home, TableProp &p)
| Constructor for cloning p.
| PosCompact (Home home, ViewArray< View > &x, const TupleSet &ts)
| Constructor for posting.
virtual void | reschedule (Space &home)
| Schedule function.
virtual ExecStatus | propagate (Space &home, const ModEventDelta &med)
| Perform propagation.
virtual Actor * | copy (Space &home)
| Copy propagator during cloning.
size_t | dispose (Space &home)
| Delete propagator and return its size.
virtual ExecStatus | advise (Space &home, Advisor &a, const Delta &d)
| Give advice to propagator.
static ExecStatus | post (Home home, ViewArray< View > &x, const TupleSet &ts)
| Post propagator for views x and table t.

## Additional Inherited Members

virtual PropCost | cost (const Space &home, const ModEventDelta &med) const
| Cost function.
ModEventDelta | modeventdelta (void) const
| Return the modification event delta.
virtual void | advise (Space &home, Advisor &a)
| Run advisor a to be run on failure in failed space.
double | afc (void) const
| Return the accumlated failure count.
unsigned int | id (void) const
| Return propagator id.
PropagatorGroup | group (void) const
| Return group propagator belongs to.
void | group (PropagatorGroup g)
| Add propagator to group g.
bool | disabled (void) const
| Whether propagator is currently disabled.
virtual | ~Actor (void)
| To avoid warnings.
static void * | operator new (size_t s, Space &home)
| Allocate memory from space.
static void | operator delete (void *p, Space &home)
| No-op for exceptions.
static void * | operator new (size_t s)
| Not used.
static void | operator delete (void *p)
| Not used.
Protected Types inherited from Gecode::Int::Extensional::Compact< View, true >
typedef TupleSet::Range | Range
| Range type for supports.
bool | all (void) const
| Whether all variables are assigned.
bool | atmostone (void) const
| Whether at most one variable is unassigned.
| Compact (Space &home, Compact &p)
| Constructor for cloning p.
void | setup (Space &home, Table &table, ViewArray< View > &x)
| Setup the actual table.
bool | full (const Table &table) const
| Check whether the table covers the whole Cartedion product.
const Range * | range (CTAdvisor &a, int n)
| Find range for n.
const BitSetData * | supports (CTAdvisor &a, int n)
| Return supports for value n.
Protected Member Functions inherited from Gecode::Propagator
| Propagator (Home home)
| Constructor for posting.
| Propagator (Space &home, Propagator &p)
| Constructor for cloning p.
Propagator * | fwd (void) const
| Return forwarding pointer during copying.
Kernel::GPI::Info & | gpi (void)
| Provide access to global propagator information.
const unsigned int | n_words
| Number of words in supports.
TupleSet | ts
| The tuple set.
Council< CTAdvisor > | c
| The advisor council.

## Detailed Description

template<class View, class Table>
class Gecode::Int::Extensional::PosCompact< View, Table >

Domain consistent positive extensional propagator.

This propagator implements the compact-table propagation algorithm based on: J. Demeulenaere et. al., Compact-Table: Efficiently filtering table constraints with reversible sparse bit-sets, CP 2016.

Requires

#include <gecode/int/extensional.hh>
extensional.hh

Definition at line 504 of file extensional.hh.

## Member Typedef Documentation

## ValidSupports

template<class View, class Table>

typedef Compact<View,true>::ValidSupports Gecode::Int::Extensional::PosCompact< View, Table >::ValidSupports

Definition at line 506 of file extensional.hh.

## Range

template<class View, class Table>

typedef Compact<View,true>::Range Gecode::Int::Extensional::PosCompact< View, Table >::Range

Definition at line 507 of file extensional.hh.

## CTAdvisor

template<class View, class Table>

typedef Compact<View,true>::CTAdvisor Gecode::Int::Extensional::PosCompact< View, Table >::CTAdvisor

Definition at line 508 of file extensional.hh.

## LostSupports

template<class View, class Table>

typedef Compact<View,true>::LostSupports Gecode::Int::Extensional::PosCompact< View, Table >::LostSupports

Definition at line 509 of file extensional.hh.

## Member Enumeration Documentation

## StatusType

template<class View, class Table>

enum Gecode::Int::Extensional::PosCompact::StatusType

Type of status.

Enumerator
SINGLE | A single view has been touched.
MULTIPLE | Multiple view have been touched.
NONE | No view has been touched.
PROPAGATING | The propagator is currently running.

Definition at line 521 of file extensional.hh.

## Constructor & Destructor Documentation

## PosCompact() [1/2]

template<class View, class Table>
template<class TableProp>

Gecode::Int::Extensional::PosCompact< View, Table >::PosCompact | ( | Space & | home,
|  | TableProp & | p )

inline

Constructor for cloning p.

Definition at line 460 of file compact.hpp.

## PosCompact() [2/2]

template<class View, class Table>

Gecode::Int::Extensional::PosCompact< View, Table >::PosCompact | ( | Home | home,
|  | ViewArray< View > & | x,
|  | const TupleSet & | ts )

inline

Constructor for posting.

Definition at line 514 of file compact.hpp.

## Member Function Documentation

## empty()

template<class View, class Table>

bool Gecode::Int::Extensional::PosCompact< View, Table >::empty | ( | void |  | ) | const

Check whether the table is empty.

## reschedule()

template<class View, class Table>

void Gecode::Int::Extensional::PosCompact< View, Table >::reschedule | ( | Space & | home | ) |

virtual

Schedule function.

Implements Gecode::Propagator.

Definition at line 538 of file compact.hpp.

## propagate()

template<class View, class Table>

ExecStatus Gecode::Int::Extensional::PosCompact< View, Table >::propagate | ( | Space & | home,
|  | const ModEventDelta & | med )

virtual

Perform propagation.

Implements Gecode::Propagator.

Definition at line 547 of file compact.hpp.

## copy()

template<class View, class Table>

Actor * Gecode::Int::Extensional::PosCompact< View, Table >::copy | ( | Space & | home | ) |

virtual

Copy propagator during cloning.

Implements Gecode::Actor.

Definition at line 467 of file compact.hpp.

## post()

template<class View, class Table>

ExecStatus Gecode::Int::Extensional::PosCompact< View, Table >::post | ( | Home | home,
|  | ViewArray< View > & | x,
|  | const TupleSet & | ts )

inline static

Post propagator for views x and table t.

Definition at line 522 of file compact.hpp.

## dispose()

template<class View, class Table>

size_t Gecode::Int::Extensional::PosCompact< View, Table >::dispose | ( | Space & | home | ) |

inline virtual

Delete propagator and return its size.

Reimplemented from Gecode::Int::Extensional::Compact< View, true >.

Definition at line 531 of file compact.hpp.

## advise()

template<class View, class Table>

ExecStatus Gecode::Int::Extensional::PosCompact< View, Table >::advise | ( | Space & | home,
|  | Advisor & | a,
|  | const Delta & | d )

virtual

Give advice to propagator.

Reimplemented from Gecode::Propagator.

Definition at line 615 of file compact.hpp.

## Member Data Documentation

## status

template<class View, class Table>

Status Gecode::Int::Extensional::PosCompact< View, Table >::status

Propagator status.

Definition at line 549 of file extensional.hh.

## table

template<class View, class Table>

Table Gecode::Int::Extensional::PosCompact< View, Table >::table

Current table.

Definition at line 551 of file extensional.hh.

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

- gecode/int/extensional.hh
- gecode/int/extensional/compact.hpp