38 template<
class View, ReifyMode rm>
46 template<
class View, ReifyMode rm>
70 switch (
vs.compare(
y)) {
92 template<
class View, ReifyMode rm>
99 template<
class View, ReifyMode rm>
105 template<
class View, ReifyMode rm>
110 return sizeof(*this);
113 template<
class View, ReifyMode rm>
132 for (
int i=0; i<
x.size(); i++)
141 switch (
vs.compare(
y)) {
166 for (
int i=1; i<
x.size(); i++) {
Home class for posting propagators
Boolean view for Boolean variables.
static void add(Space &home, ValSet &vs, ViewArray< View > &x)
Add values of assigned views in x to value set va.
Prop(Home home, ValSet &vs, ViewArray< View > &x, View y)
Constructor for posting.
ValSet vs
Value set storing the values of already assigned views.
void eliminate(Space &home)
Eliminate views from x that are not equal to y or ar subsumed by vs.
static ExecStatus post(Home home, ViewArray< View > &x, View y)
Post propagator for .
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual Propagator * copy(Space &home)
Copy propagator during cloning.
ReProp(Home home, ValSet &vs, ViewArray< View > &x, View y, BoolView b)
Constructor for posting.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
BoolView b
Boolean control variable.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
static ExecStatus post(Home home, ViewArray< View > &x, View y, BoolView b)
Post propagator for .
static ExecStatus post(Home home, V0 x0, V1 x1)
Post propagator .
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post domain consistent propagator .
Class for storing values of already assigned views.
Range iterator for integer views.
Range iterator for union of iterators.
Base-class for propagators.
ModEventDelta med
A set of modification events (used during propagation)
ExecStatus ES_SUBSUMED(Propagator &p)
Propagator p is subsumed
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
@ RM_IMP
Implication for reification.
@ RM_PMI
Inverse implication for reification.
const Gecode::PropCond PC_BOOL_VAL
Propagate when a view becomes assigned (single value)
const Gecode::ModEvent ME_INT_VAL
Domain operation has resulted in a value (assigned variable)
@ CS_NONE
Neither of the above.
@ CS_SUBSET
First is subset of second iterator.
@ CS_DISJOINT
Intersection is empty.
bool disjoint(I &i, J &j)
Check whether range iterators i and j are disjoint.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
#define GECODE_NEVER
Assert that this command is never executed.