42 template<
class View0,
class View1,
class View2>
45 (
Home home, View0 y0, View1 y1, View2 y2)
49 template<
class View0,
class View1,
class View2>
56 template<
class View0,
class View1,
class View2>
59 View0
x0, View1
x1, View2
x2) {
64 template<
class View0,
class View1,
class View2>
70 template<
class View0,
class View1,
class View2>
74 bool allassigned =
x0.assigned() &&
x1.assigned() &&
x2.assigned();
80 bool modified =
false;
126 if (m <
x0.cardMin() +
x1.cardMin()) {
129 x0.cardMin()+
x1.cardMin() - m ) );
131 if (m +
x2.cardMax() >
x1.cardMin()) {
134 m+
x2.cardMax()-
x1.cardMin() ) );
136 if (m +
x2.cardMax() >
x0.cardMin()) {
139 m+
x2.cardMax()-
x0.cardMin() ) );
152 if (
x0.assigned() +
x1.assigned() +
x2.assigned() >= 2) {
Base-class for both propagators and branchers.
Home class for posting propagators
Range iterator for computing set difference.
Range iterator for computing intersection (binary)
Range iterator for computing union (binary)
MixTernaryPropagator(Space &home, MixTernaryPropagator &p)
ModEventDelta med
A set of modification events (used during propagation)
Range iterator for the greatest lower bound.
Range iterator for the least upper bound.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View0 x, View1 y, View2 z)
Post propagator .
SuperOfInter(Space &home, SuperOfInter &p)
Constructor for cloning p.
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_MODIFIED(modified, me)
Check whether me is failed or modified, and forward failure.
unsigned int size(I &i)
Size of all ranges of range iterator i.
Standard set operation propagators.
bool shared(View0 v0, View1 v1, View2 v2)
bool testSetEventLB(ModEvent me0, ModEvent me1, ModEvent me2)
bool testSetEventCard(ModEvent me0, ModEvent me1, ModEvent me2)
bool testSetEventUB(ModEvent me0, ModEvent me1, ModEvent me2)
bool testSetEventAnyB(ModEvent me0, ModEvent me1, ModEvent me2)
const Gecode::PropCond PC_SET_CLUB
Propagate when the cardinality or the least upper bound of a view changes.
const Gecode::PropCond PC_SET_ANY
Propagate when any bound or the cardinality of a view changes.
Gecode toplevel namespace
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
@ ES_NOFIX
Propagation has not computed fixpoint.
int ModEvent
Type for modification events.