40namespace Gecode {
namespace Set {
namespace RelOp {
42 template<
class View0,
class View1,
class View2>
48 template<
class View0,
class View1,
class View2>
52 bool allassigned = x0.assigned() && x1.assigned() && x2.assigned();
104 if (m < x0.cardMax()+x1.cardMax()) {
107 x0.cardMax()+x1.cardMax() - m ) );
109 if (m + x2.cardMin() > x1.cardMax()) {
112 m+x2.cardMin()-x1.cardMax() ) );
114 if (m + x2.cardMin() > x0.cardMax()) {
117 m+x2.cardMin()-x0.cardMax() ) );
130 if (x0.assigned() + x1.assigned() + x2.assigned() >= 2) {
139 template<
class View0,
class View1,
class View2>
146 template<
class View0,
class View1,
class View2>
153 template<
class View0,
class View1,
class View2>
155 (
Home home, View0 x0, View1 x1, View2 x2) {
union Gecode::@603::NNF::@65 u
Union depending on nodetype t.
int p
Number of positive literals for node type.
Home class for posting propagators
Range iterator for computing set difference.
Range iterator for computing intersection (binary)
Range iterator for computing union (binary)
Mixed ternary propagator.
Range iterator for the greatest lower bound.
Range iterator for the least upper bound.
Propagator for the subset of union
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
SubOfUnion(Space &home, SubOfUnion &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View0 x, View1 y, View2 z)
Post propagator .
ExecStatus ES_SUBSUMED(Propagator &p)
int ModEventDelta
Modification event deltas.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
#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.
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_ANY
Propagate when any bound or the cardinality of a view changes.
Gecode toplevel namespace
SetExpr inter(const SetVarArgs &)
Intersection of set variables.
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
@ ES_NOFIX
Propagation has not computed fixpoint.
int ModEvent
Type for modification events.