44 namespace Gecode {
namespace Set {
namespace Rel {
46 template<
class View0,
class View1>
51 template<
class View0,
class View1>
57 template<
class View0,
class View1>
76 template<
class View0,
class View1>
82 template<
class View0,
class View1>
85 assert(x0.assigned()||x1.assigned());
106 template<
class View0>
112 template<
class View0>
121 assert(x0.lubSize()-x0.glbSize() >0);
122 if (x0.cardMin()>y.cardMax()) {
return home.
ES_SUBSUMED(*
this); }
123 if (x0.cardMax()<y.cardMin()) {
return home.
ES_SUBSUMED(*
this); }
134 if (x0.lubSize() == y.cardMin() && x0.lubSize() > 0) {
138 if (x0.glbSize() == y.cardMin()) {
145 template<
class View0>
150 template<
class View0>
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
Range iterator for greatest lower bound of constant set view
Propagator for negated equality
void update(Space &home, bool share, ConstSetView &y)
Update this view to be a clone of view y.
ExecStatus ES_SUBSUMED(Propagator &p)
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Range iterator for least upper bound of constant set view
bool equal(I &i, J &j)
Check whether range iterators i and j are equal.
Range iterator for the greatest lower bound.
Propagation has computed fixpoint.
Range iterator for the least upper bound.
Base-class for both propagators and branchers.
DistinctDoit(Space &home, bool share, DistinctDoit &)
Constructor for cloning p.
Distinct(Space &home, bool share, Distinct &p)
Constructor for cloning p.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
int p
Number of positive literals for node type.
Execution has resulted in failure.
#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.
virtual Actor * copy(Space &home, bool)
Copy propagator during cloning.
Node * x
Pointer to corresponding Boolean expression node.
static ExecStatus post(Home home, View0, ConstSetView)
Post propagator .
ConstSetView y
The view that is already assigned.
Propagator for negated equality
virtual Actor * copy(Space &home, bool)
Copy propagator during cloning.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
bool subset(I &i, J &j)
Check whether range iterator i is subset of range iterator j.
Gecode toplevel namespace
const Gecode::PropCond PC_SET_VAL
Propagate when a view becomes assigned (single value)
static ExecStatus post(Home home, View0, View1)
Post propagator .
int ModEventDelta
Modification event deltas.
Home class for posting propagators