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.
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)
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.
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.