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)
union Gecode::@518::NNF::@57 u
Union depending on nodetype t.
bool testSetEventLB(ModEvent me0, ModEvent me1, ModEvent me2)
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