42 template<
class View0,
class View1>
47 template<
class View0,
class View1>
53 template<
class View0,
class View1>
74 template<
class View0,
class View1>
80 template<
class View0,
class View1>
83 assert(
x0.assigned()||
x1.assigned());
104 template<
class View0>
110 template<
class View0>
119 assert(
x0.lubSize()-
x0.glbSize() >0);
132 if (
x0.lubSize() ==
y.cardMin() &&
x0.lubSize() > 0) {
136 if (
x0.glbSize() ==
y.cardMin()) {
143 template<
class View0>
148 template<
class View0>
Base-class for both propagators and branchers.
Home class for posting propagators
MixBinaryPropagator(Space &home, MixBinaryPropagator &p)
Range iterator for the greatest lower bound.
Range iterator for the least upper bound.
DistinctDoit(Space &home, DistinctDoit &)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, View0 x, ConstSetView y)
Post propagator .
ConstSetView y
The view that is already assigned.
Distinct(Space &home, Distinct &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View0 x, View1 y)
Post propagator .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
UnaryPropagator(Space &home, UnaryPropagator &p)
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.
bool subset(I &i, J &j)
Check whether range iterator i is subset of range iterator j.
bool equal(I &i, J &j)
Check whether range iterators i and j are equal.
Standard set relation propagators.
const Gecode::PropCond PC_SET_VAL
Propagate when a view becomes assigned (single value)
const Gecode::PropCond PC_SET_ANY
Propagate when any bound or the cardinality of a view changes.
Gecode toplevel namespace
bool same(VarArgArray< Var > x, VarArgArray< Var > y)
Post propagator for SetVar SetOpType SetVar y
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
@ ES_FAILED
Execution has resulted in failure.
Post propagator for SetVar x