44 namespace Gecode {
namespace Set {
namespace RelOp {
46 template<
class View0,
class View1,
class View2>
49 (
Home home, View0 y0, View1 y1, View2 y2)
53 template<
class View0,
class View1,
class View2>
60 template<
class View0,
class View1,
class View2>
63 View0 x0, View1 x1, View2 x2) {
68 template<
class View0,
class View1,
class View2>
74 template<
class View0,
class View1,
class View2>
78 bool allassigned = x0.assigned() && x1.assigned() && x2.assigned();
84 bool modified =
false;
130 if (m < x0.cardMin() + x1.cardMin()) {
133 x0.cardMin()+x1.cardMin() - m ) );
135 if (m + x2.cardMax() > x1.cardMin()) {
138 m+x2.cardMax()-x1.cardMin() ) );
140 if (m + x2.cardMax() > x0.cardMin()) {
143 m+x2.cardMax()-x0.cardMin() ) );
156 if (x0.assigned() + x1.assigned() + x2.assigned() >= 2) {
const Gecode::PropCond PC_SET_CLUB
Propagate when the cardinality or the least upper bound of a view changes.
bool testSetEventAnyB(ModEvent me0, ModEvent me1, ModEvent me2)
ExecStatus ES_SUBSUMED(Propagator &p)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
int ModEvent
Type for modification events.
Range iterator for the greatest lower bound.
static ExecStatus post(Home home, View0 x, View1 y, View2 z)
Post propagator .
Propagation has computed fixpoint.
#define GECODE_ME_CHECK_MODIFIED(modified, me)
Check whether me is failed or modified, and forward failure.
Range iterator for the least upper bound.
Base-class for both propagators and branchers.
SuperOfInter(Space &home, bool share, SuperOfInter &p)
Constructor for cloning p.
int p
Number of positive literals for node type.
Range iterator for computing intersection (binary)
Mixed ternary propagator.
unsigned int size(I &i)
Size of all ranges of range iterator i.
const Gecode::PropCond PC_SET_ANY
Propagate when any bound or the cardinality of a view changes.
bool shared(View0 v0, View1 v1, View2 v2)
Range iterator for computing union (binary)
bool testSetEventLB(ModEvent me0, ModEvent me1, ModEvent me2)
union Gecode::@511::NNF::@54 u
Union depending on nodetype t.
Propagator for the superset of intersection
Propagation has not computed fixpoint.
bool testSetEventCard(ModEvent me0, ModEvent me1, ModEvent me2)
Gecode toplevel namespace
virtual Actor * copy(Space &home, bool)
Copy propagator during cloning.
bool testSetEventUB(ModEvent me0, ModEvent me1, ModEvent me2)
Range iterator for computing set difference.
int ModEventDelta
Modification event deltas.
Home class for posting propagators