38 namespace Gecode {
namespace Set {
namespace Rel {
40 template<
class View0,
class View1, ReifyMode rm,
bool strict>
50 template<
class View0,
class View1, ReifyMode rm,
bool strict>
54 x0.update(home,share,p.
x0);
55 x1.update(home,share,p.
x1);
59 template<
class View0,
class View1, ReifyMode rm,
bool strict>
66 template<
class View0,
class View1, ReifyMode rm,
bool strict>
74 template<
class View0,
class View1, ReifyMode rm,
bool strict>
84 template<
class View0,
class View1, ReifyMode rm,
bool strict>
92 template<
class View0,
class View1, ReifyMode rm,
bool strict>
98 template<
class View0,
class View1, ReifyMode rm,
bool strict>
112 if (
x0.cardMax() == 0) {
113 if ( (!strict) ||
x1.cardMin() > 0) {
118 if (strict &&
x1.cardMax() == 0) {
125 if (
x0.assigned() &&
x1.assigned()) {
133 if ((!strict) &&
x0.cardMax() ==
x1.cardMax()) {
152 if (strict &&
x0.cardMax() ==
x1.cardMax()) {
166 assert(min01 != min10);
178 if (
x1.cardMax() > 0) {
181 int x1umin=x1u.
min();
183 if (
d() && d.
min() < x1umin) {
190 if (
x0.cardMax() > 0) {
193 int x0umin=x0u.
min();
195 if (
d() && d.
min() < x0umin) {
void cancel(Space &home, Propagator &p, PropCond pc)
Cancel subscription of propagator p with propagation condition pc to view.
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
bool zero(void) const
Test whether view is assigned to be zero.
Inverse implication for reification.
ExecStatus ES_SUBSUMED(Propagator &p)
ReLq(Space &home, bool share, ReLq &p)
Constructor for cloning p.
bool one(void) const
Test whether view is assigned to be one.
static ExecStatus post(Home home, View0 x, View1 y, Gecode::Int::BoolView b)
Post propagator for .
Base-class for propagators.
Propagator for set less than or equal
Range iterator for the greatest lower bound.
void reschedule(Space &home, Propagator &p, PropCond pc)
Re-schedule propagator p with propagation condition pc.
Propagation has computed fixpoint.
Range iterator for the least upper bound.
virtual void reschedule(Space &home)
Schedule function.
Base-class for both propagators and branchers.
void subscribe(Space &home, Propagator &p, PropCond pc, bool schedule=true)
Subscribe propagator p with propagation condition pc to view.
int p
Number of positive literals for node type.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
ModEvent zero_none(Space &home)
Assign not yet assigned view to zero.
int min(void) const
Return smallest value of range.
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as PC_TERNARY_LO)
void update(Space &home, bool share, VarImpView< Var > &y)
Update this view to be a clone of view y.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
Reified propagator for set less than or equal
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 ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
static PropCost ternary(PropCost::Mod m)
Three variables for modifier pcm.
Gecode toplevel namespace
Implication for reification.
ModEvent one_none(Space &home)
Assign not yet assigned view to one.
Range iterator for computing set difference.
int min(void) const
Return smallest value of range.
struct Gecode::@554::NNF::@60::@61 b
For binary nodes (and, or, eqv)
int ModEventDelta
Modification event deltas.
Home class for posting propagators
virtual Actor * copy(Space &home, bool)
Copy propagator during cloning.
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value)
Boolean view for Boolean variables.