Gecode::Int::Circuit::Dom< View, Offset > Class Template Reference
Other available functionality » Integer propagators

"Domain consistent" circuit propagator More...

`#include <circuit.hh>`

## Public Member Functions

virtual Actor * | copy (Space &home)
| Copy propagator during cloning.
virtual PropCost | cost (const Space &home, const ModEventDelta &med) const
| Cost function.
virtual void | reschedule (Space &home)
| Schedule function.
virtual ExecStatus | propagate (Space &home, const ModEventDelta &med)
| Perform propagation.
Public Member Functions inherited from Gecode::Int::Circuit::Base< View, Offset >
virtual size_t | dispose (Space &home)
| Delete propagator and return its size.
ModEventDelta | modeventdelta (void) const
| Return the modification event delta.
virtual ExecStatus | advise (Space &home, Advisor &a, const Delta &d)
| Advise function.
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 Public Member Functions

static ExecStatus | post (Home home, ViewArray< View > &x, Offset &o)
| Post propagator for circuit on x.
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 Member Functions

| Dom (Space &home, Dom &p)
| Constructor for cloning p.
| Dom (Home home, ViewArray< View > &x, Offset &o)
| Constructor for posting.
Protected Member Functions inherited from Gecode::Int::Circuit::Base< View, Offset >
| Base (Space &home, Base &p)
| Constructor for cloning p.
| Base (Home home, ViewArray< View > &x, Offset &o)
| Constructor for posting.
ExecStatus | connected (Space &home)
| Check whether the view value graph is strongly connected.
ExecStatus | path (Space &home)
| Ensure path property: prune edges that could give too small cycles.
Protected Member Functions inherited from Gecode::NaryPropagator< View, Int::PC_INT_DOM >
| NaryPropagator (Space &home, NaryPropagator &p)
| Constructor for cloning p.
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.

## Protected Attributes

Int::Distinct::DomCtrl< View > | dc
| Propagation controller for propagating distinct.
Protected Attributes inherited from Gecode::Int::Circuit::Base< View, Offset >
int | start
| Remember where to start the next time the propagator runs.
ViewArray< View > | y
| Array for performing value propagation for distinct.
Offset | o
| Offset transformation.
Protected Attributes inherited from Gecode::NaryPropagator< View, Int::PC_INT_DOM >
ViewArray< View > | x
| Array of views.

## Detailed Description

template<class View, class Offset>
class Gecode::Int::Circuit::Dom< View, Offset >

"Domain consistent" circuit propagator

Propagates domain consistent distinct, checks that the induced variable value graph is stronlgy connected, and prunes too shot cycles.

Requires

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

Definition at line 121 of file circuit.hh.

## Constructor & Destructor Documentation

## Dom() [1/2]

template<class View, class Offset>

Gecode::Int::Circuit::Dom< View, Offset >::Dom | ( | Space & | home,
|  | Dom< View, Offset > & | p )

protected

Constructor for cloning p.

## Dom() [2/2]

template<class View, class Offset>

Gecode::Int::Circuit::Dom< View, Offset >::Dom | ( | Home | home,
|  | ViewArray< View > & | x,
|  | Offset & | o )

inline protected

Constructor for posting.

Definition at line 42 of file dom.hpp.

## Member Function Documentation

## copy()

template<class View, class Offset>

Actor * Gecode::Int::Circuit::Dom< View, Offset >::copy | ( | Space & | home | ) |

virtual

Copy propagator during cloning.

Implements Gecode::Actor.

Definition at line 52 of file dom.hpp.

## cost()

template<class View, class Offset>

PropCost Gecode::Int::Circuit::Dom< View, Offset >::cost | ( | const Space & | home,
|  | const ModEventDelta & | med ) const

virtual

Cost function.

If in stage for naive value propagation, the cost is low linear. Otherwise it is high quadratic.

Reimplemented from Gecode::NaryPropagator< View, Int::PC_INT_DOM >.

Definition at line 58 of file dom.hpp.

## reschedule()

template<class View, class Offset>

void Gecode::Int::Circuit::Dom< View, Offset >::reschedule | ( | Space & | home | ) |

virtual

Schedule function.

Reimplemented from Gecode::NaryPropagator< View, Int::PC_INT_DOM >.

Definition at line 67 of file dom.hpp.

## propagate()

template<class View, class Offset>

ExecStatus Gecode::Int::Circuit::Dom< View, Offset >::propagate | ( | Space & | home,
|  | const ModEventDelta & | med )

virtual

Perform propagation.

Implements Gecode::Propagator.

Definition at line 78 of file dom.hpp.

## post()

template<class View, class Offset>

ExecStatus Gecode::Int::Circuit::Dom< View, Offset >::post | ( | Home | home,
|  | ViewArray< View > & | x,
|  | Offset & | o )

static

Post propagator for circuit on x.

Definition at line 114 of file dom.hpp.

## Member Data Documentation

## dc

template<class View, class Offset>

Int::Distinct::DomCtrl<View> Gecode::Int::Circuit::Dom< View, Offset >::dc

protected

Propagation controller for propagating distinct.

Definition at line 129 of file circuit.hh.

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

- gecode/int/circuit.hh
- gecode/int/circuit/dom.hpp