36 template<
class View0,
class View1, ReifyMode rm,
bool strict>
46 template<
class View0,
class View1, ReifyMode rm,
bool strict>
55 template<
class View0,
class View1, ReifyMode rm,
bool strict>
62 template<
class View0,
class View1, ReifyMode rm,
bool strict>
70 template<
class View0,
class View1, ReifyMode rm,
bool strict>
80 template<
class View0,
class View1, ReifyMode rm,
bool strict>
100 template<
class View0,
class View1, ReifyMode rm,
bool strict>
106 template<
class View0,
class View1, ReifyMode rm,
bool strict>
120 if (
x0.cardMax() == 0) {
121 if ( (!strict) ||
x1.cardMin() > 0) {
126 if (strict &&
x1.cardMax() == 0) {
133 if (
x0.assigned() &&
x1.assigned()) {
141 if ((!strict) &&
x0.cardMax() ==
x1.cardMax()) {
160 if (strict &&
x0.cardMax() ==
x1.cardMax()) {
174 assert(min01 != min10);
186 if (
x1.cardMax() > 0) {
189 int x1umin=x1u.
min();
191 if (d() && d.
min() < x1umin) {
198 if (
x0.cardMax() > 0) {
201 int x0umin=x0u.
min();
203 if (d() && d.
min() < x0umin) {
Base-class for both propagators and branchers.
virtual size_t dispose(Space &home)
Delete actor and return its size.
Home class for posting propagators
int min(int i) const
Return minimum of range at position i.
Boolean view for Boolean variables.
ReLq(Space &home, ReLq &p)
Constructor for cloning p.
static ExecStatus post(Home home, View x0, View x1, CtrlView b)
Post propagator for .
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Range iterator for computing set difference.
static PropCost ternary(PropCost::Mod m)
Three variables for modifier pcm.
virtual void reschedule(Space &home)=0
Schedule function.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const =0
Cost function.
Propagator(Home home)
Constructor for posting.
Range iterator for the greatest lower bound.
Range iterator for the least upper bound.
int min(void) const
Return smallest value of range.
static ExecStatus post(Home home, View0 x, View1 y)
Post propagator .
ReLq(Space &home, ReLq &p)
Constructor for cloning 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.
@ 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.