44 namespace Gecode {
namespace Set {
namespace RelOp {
46 template<
class View0,
class View1,
class View2>
52 template<
class View0,
class View1,
class View2>
56 bool allassigned = x0.assigned() && x1.assigned() && x2.assigned();
108 if (m < x0.cardMax()+x1.cardMax()) {
111 x0.cardMax()+x1.cardMax() - m ) );
113 if (m + x2.cardMin() > x1.cardMax()) {
116 m+x2.cardMin()-x1.cardMax() ) );
118 if (m + x2.cardMin() > x0.cardMax()) {
121 m+x2.cardMin()-x0.cardMax() ) );
134 if (x0.assigned() + x1.assigned() + x2.assigned() >= 2) {
143 template<
class View0,
class View1,
class View2>
150 template<
class View0,
class View1,
class View2>
155 View2,PC_SET_ANY>(home,
p) {}
157 template<
class View0,
class View1,
class View2>
bool testSetEventAnyB(ModEvent me0, ModEvent me1, ModEvent me2)
static ExecStatus post(Home home, View0 x, View1 y, View2 z)
Post propagator .
ExecStatus ES_SUBSUMED(Propagator &p)
View2 x2
View of type View2.
int ModEvent
Type for modification events.
Range iterator for the greatest lower bound.
Propagation has computed fixpoint.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
#define GECODE_ME_CHECK_MODIFIED(modified, me)
Check whether me is failed or modified, and forward failure.
Range iterator for the least upper bound.
Propagator for the subset of union
View0 x0
View of type View0.
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.
union Gecode::@585::NNF::@62 u
Union depending on nodetype t.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
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)
SetExpr inter(const SetVarArgs &x)
Intersection of set variables.
bool testSetEventLB(ModEvent me0, ModEvent me1, ModEvent me2)
Propagation has not computed fixpoint.
bool testSetEventCard(ModEvent me0, ModEvent me1, ModEvent me2)
Gecode toplevel namespace
bool testSetEventUB(ModEvent me0, ModEvent me1, ModEvent me2)
Range iterator for computing set difference.
SubOfUnion(Space &home, SubOfUnion &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
int ModEventDelta
Modification event deltas.
Home class for posting propagators
View1 x1
View of type View1.