43 namespace Gecode {
namespace Set {
namespace Rel {
45 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
55 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
59 x0.update(home,share,
p.x0);
60 x1.update(home,share,
p.x1);
61 b.update(home,share,
p.b);
64 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
70 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
78 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
88 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
96 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
102 template<
class View0,
class View1,
class CtrlView, ReifyMode rm>
117 if (x0.assigned() && x1.assigned()) {
122 for (; x0lb() && x1lb(); ++x0lb, ++x1lb) {
123 if (x0lb.
min() != x1lb.
min() ||
124 x0lb.
max() != x1lb.
max()) {
129 if (x0eqx1 && !x0lb() && !x1lb()) {
141 if (x0.cardMin() > x1.cardMax() ||
142 x1.cardMin() > x0.cardMax()) {
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
Propagator for negated equality
static ExecStatus post(Home home, View0 x, View1 y, CtrlView b)
Post propagator for .
int min(void) const
Return smallest value of range.
ReEq(Space &home, bool share, ReEq &)
Constructor for cloning p.
Inverse implication for reification.
ExecStatus ES_SUBSUMED(Propagator &p)
Base-class for propagators.
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.
Reified equality propagator
int p
Number of positive literals for node type.
virtual Actor * copy(Space &home, bool)
Copy propagator during cloning.
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as PC_TERNARY_LO)
#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 size_t dispose(Space &home)
Delete actor and return its size.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
Propagator for set equality
int max(void) const
Return largest value of range.
static PropCost ternary(PropCost::Mod m)
Three variables for modifier pcm.
Gecode toplevel namespace
Implication for reification.
Range iterator for computing set difference.
int ModEventDelta
Modification event deltas.
virtual void reschedule(Space &home)
Schedule function.
Home class for posting propagators
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value)