42 template<
class View0,
class View1>
48 template<
class View0,
class View1>
54 template<
class View0,
class View1>
61 template<
class View0,
class View1>
64 return new (home)
Subset(home,*
this);
67 template<
class View0,
class View1>
70 bool oneassigned =
x0.assigned() ||
x1.assigned();
71 unsigned int x0glbsize;
77 x0glbsize =
x0.glbSize();
80 }
while (
x0.glbSize() > x0glbsize);
82 if (
x0.cardMin() ==
x1.cardMax())
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.
static ExecStatus post(Home home, View0 x, View1 y)
Post propagator .
Subset(Space &home, Subset &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.
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.
Standard set relation propagators.
const Gecode::PropCond PC_SET_CLUB
Propagate when the cardinality or the least upper bound of a view changes.
const Gecode::PropCond PC_SET_CGLB
Propagate when the cardinality or the greatest lower bound 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_NOFIX
Propagation has not computed fixpoint.
bool shared(ViewArray< ViewX > x, ViewArray< ViewY > y)
Post propagator for SetVar x