40namespace 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.
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 the greatest lower bound.
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.
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.
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.
Gecode toplevel namespace
bool same(VarArgArray< Var > x, VarArgArray< Var > y)
Post propagator for SetVar SetOpType SetVar y
@ ES_OK
Execution is okay.
@ ES_FIX
Propagation has computed fixpoint.
@ ES_FAILED
Execution has resulted in failure.
Post propagator for SetVar x