Go to the documentation of this file.
40 #ifndef __GECODE_INT_DISTINCT_HH__
41 #define __GECODE_INT_DISTINCT_HH__
53 namespace Gecode {
namespace Int {
namespace Distinct {
74 virtual void solndistrib(
Space& home, Propagator::SendMarginal send)
const;
77 virtual void domainsizesum(Propagator::InDecision in,
78 unsigned int&
size,
unsigned int& size_b)
const;
101 Propagator::SendMarginal send);
105 unsigned int&
size,
unsigned int& size_b);
121 template<
class View,
bool complete>
167 #ifdef GECODE_HAS_CBS
168 virtual void solndistrib(
Space& home, Propagator::SendMarginal send)
const;
171 virtual void domainsizesum(Propagator::InDecision in,
172 unsigned int&
size,
unsigned int& size_b)
const;
293 #ifdef GECODE_HAS_CBS
294 virtual void solndistrib(
Space& home, Propagator::SendMarginal send)
const;
297 virtual void domainsizesum(Propagator::InDecision in,
298 unsigned int&
size,
unsigned int& size_b)
const;
Val(Home home, ViewArray< View > &x)
Constructor for posting.
TerDom(Space &home, TerDom< View > &p)
Constructor for cloning p.
Post propagator for SetVar x
View-value graph base class.
Graph(void)
Construct graph as not yet initialized.
Bnd(Home home, ViewArray< View > &x)
Constructor for posting.
size_t size
The size of the propagator (used during subsumption)
Dom(Space &home, Dom< View > &p)
Constructor for cloning p.
static ExecStatus post(Home home, View x0, View x1, View x2)
Post propagator for views x.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
ExecStatus init(Space &home, ViewArray< View > &x)
Initialize view-value graph for views x.
Bounds consistent distinct propagator.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for views x.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for view array x.
unsigned int size(I &i)
Size of all ranges of range iterator i.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
ExecStatus prop_bnd(Space &home, ViewArray< View > &x, int *minsorted, int *maxsorted)
bool assigned(View x, int v)
Whether x is assigned to value v.
EqIte(Space &home, EqIte &p)
Constructor for cloning p.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as high ternary)
Base-class for both propagators and branchers.
static ExecStatus post(Home home, IntView x0, IntView x1, int c0, int c1)
Post if-then-else propagator.
ViewArray< View > x
Array of views.
DomCtrl< View > dc
Propagation controller.
virtual size_t dispose(Space &home)
Destructor.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Gecode toplevel namespace
Base-class for propagators.
ExecStatus prop_val(Space &home, ViewArray< View > &x)
Eliminate singletons by naive value propagation.
Propagation controller for domain consistent distinct.
DomCtrl(void)
Initialize with non-initialized view-value graph.
bool sync(void)
Synchronize graph with new view domains.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
ExecStatus sync(void)
Synchronize available view-value graph.
#define GECODE_INT_EXPORT
Ternary domain consistent distinct propagator.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Equal-if-then-else domain-consistent propagator.
Home class for posting propagators
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
int min_x
Minimum (approximation) of view in x.
ModEventDelta med
A set of modification events (used during propagation)
int c0
The integer constant.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual void reschedule(Space &home)
Schedule function.
Domain consistent distinct propagator.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function.
ViewArray< View > y
Views on which to perform value-propagation (subset of x)
ExecStatus prune(Space &home, bool &assigned)
Prune unmarked edges, assigned is true if a view got assigned.
View-value graph for propagation.
static ExecStatus post(Home home, ViewArray< View > &x)
Post propagator for view array x.
Integer view for integer variables.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
int max_x
Maximum (approximation) of view in x.
ExecStatus propagate(Space &home, bool &assigned)
Perform propagation, assigned is true if a view gets assigned.
Graph< View > g
Propagation is performed on a view-value graph.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
ViewArray< View > x
Views on which to perform bounds-propagation.
int ModEventDelta
Modification event deltas.
ExecStatus init(Space &home, ViewArray< View > &x)
Initialize graph.
int p
Number of positive literals for node type.
bool mark(void)
Mark edges in graph, return true if pruning is at all possible.
bool available(void)
Check whether a view-value graph is available.
Naive value distinct propagator.