41 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
51 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
60 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
66 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
74 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
84 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
96 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
102 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
117 if (
x0.assigned() &&
x1.assigned()) {
122 for (; x0lb() && x1lb(); ++x0lb, ++x1lb) {
123 if (x0lb.
min() != x1lb.
min() ||
124 x0lb.
max() != x1lb.
max()) {
129 if (x0eqx1 && !x0lb() && !x1lb()) {
141 if (
x0.cardMin() >
x1.cardMax() ||
142 x1.cardMin() >
x0.cardMax()) {
Base-class for both propagators and branchers.
virtual size_t dispose(Space &home)
Delete actor and return its size.
Home class for posting propagators
Range iterator for computing set difference.
static PropCost ternary(PropCost::Mod m)
Three variables for modifier pcm.
Propagator(Home home)
Constructor for posting.
Range iterator for the greatest lower bound.
int min(void) const
Return smallest value of range.
int max(void) const
Return largest value of range.
Range iterator for the least upper bound.
static ExecStatus post(Home home, View0 x, View1 y)
Post propagator .
static ExecStatus post(Home home, View0 x, View1 y)
Post propagator .
static ExecStatus post(Home home, View0 x, View1 y, CtrlView b)
Post propagator for .
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as PC_TERNARY_LO)
ReEq(Space &home, ReEq &)
Constructor for cloning p.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual void reschedule(Space &home)
Schedule function.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
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.
@ RM_IMP
Implication for reification.
@ RM_PMI
Inverse implication for reification.
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value)
Standard set relation propagators.
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)
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.