40 namespace Gecode {
namespace Set {
namespace Rel {
42 template<
class View0,
class View1>
47 template<
class View0,
class View1>
53 template<
class View0,
class View1>
74 template<
class View0,
class View1>
80 template<
class View0,
class View1>
83 assert(x0.assigned()||x1.assigned());
104 template<
class View0>
110 template<
class View0>
119 assert(x0.lubSize()-x0.glbSize() >0);
132 if (x0.lubSize() ==
y.
cardMin() && x0.lubSize() > 0) {
143 template<
class View0>
148 template<
class View0>
int p
Number of positive literals for node type.
Node * x
Pointer to corresponding Boolean expression node.
Base-class for both propagators and branchers.
Home class for posting propagators
unsigned int cardMax(void) const
Return cardinality maximum.
unsigned int cardMin(void) const
Return cardinality minimum.
void update(Space &home, ConstSetView &y)
Update this view to be a clone of view y.
Range iterator for greatest lower bound of constant set view
Range iterator for the greatest lower bound.
Range iterator for least upper bound of constant set view
Range iterator for the least upper bound.
Propagator for negated equality
DistinctDoit(Space &home, DistinctDoit &)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static ExecStatus post(Home home, View0 x, ConstSetView y)
Post propagator .
ConstSetView y
The view that is already assigned.
Propagator for negated equality
Distinct(Space &home, Distinct &p)
Constructor for cloning p.
virtual Actor * copy(Space &home)
Copy propagator during cloning.
static ExecStatus post(Home home, View0 x, View1 y)
Post propagator .
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
bool assigned(void) const
Test whether view is assigned.
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
@ ES_FAILED
Execution has resulted in failure.
Post propagator for SetVar SetOpType SetVar y
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_REWRITE(prop, post)
Rewrite propagator by executing post function.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
bool subset(I &i, J &j)
Check whether range iterator i is subset of range iterator j.
bool equal(I &i, J &j)
Check whether range iterators i and j are equal.
bool same(VX, VY)
Test whether two views are in fact the same.
const Gecode::PropCond PC_SET_VAL
Propagate when a view becomes assigned (single value)
const Gecode::PropCond PC_SET_ANY
Propagate when any bound or the cardinality of a view changes.