38 template<
class View, ReifyMode rm>
44 template<
class View, ReifyMode rm>
53 }
else if ((
min <=
x.min()) && (
x.max() <=
max)) {
62 }
else if (
b.zero()) {
74 template<
class View, ReifyMode rm>
80 template<
class View, ReifyMode rm>
86 template<
class View, ReifyMode rm>
95 }
else if (
b.zero()) {
101 }
else if ((
x0.max() <=
max) && (
x0.min() >=
min)) {
105 }
else if ((
x0.max() <
min) || (
x0.min() >
max)) {
109 }
else if (!
x0.range()) {
Base-class for both propagators and branchers.
Home class for posting propagators
Boolean view for Boolean variables.
static ExecStatus post(Home home, View x, int min, int max, BoolView b)
Post propagator for .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
ReRange(Space &home, ReRange &p)
Constructor for cloning p.
ReUnaryPropagator(Space &home, ReUnaryPropagator &p)
static ExecStatus post(Home home, View x, int c, CtrlView b)
Post domain consistent propagator .
Range iterator for integer views.
Range iterator for singleton range.
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.
@ RM_IMP
Implication for reification.
@ RM_PMI
Inverse implication for reification.
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
@ CS_NONE
Neither of the above.
@ CS_SUBSET
First is subset of second iterator.
@ CS_DISJOINT
Intersection is empty.
CompareStatus compare(I &i, J &j)
Check whether range iterator i is a subset of j, or whether they are disjoint.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar SetRelType r
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
Post propagator for SetVar x
#define GECODE_NEVER
Assert that this command is never executed.