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>
76 template<
class View0,
class View1, ReifyMode rm,
bool strict>
84 template<
class View0,
class View1, ReifyMode rm,
bool strict>
90 template<
class View0,
class View1, ReifyMode rm,
bool strict>
104 if (
x0.cardMax() == 0) {
105 if ( (!strict) ||
x1.cardMin() > 0) {
110 if (strict &&
x1.cardMax() == 0) {
117 if (
x0.assigned() &&
x1.assigned()) {
125 if ((!strict) &&
x0.cardMax() ==
x1.cardMax()) {
144 if (strict &&
x0.cardMax() ==
x1.cardMax()) {
158 assert(min01 != min10);
170 if (
x1.cardMax() > 0) {
173 int x1umin=x1u.
min();
175 if (
d() && d.
min() < x1umin) {
182 if (
x0.cardMax() > 0) {
185 int x0umin=x0u.
min();
187 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)
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 .
ReLq(Space &home, bool share, ReLq &)
Constructor for cloning p.
Base-class for propagators.
Propagator for set less than or 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.
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.
struct Gecode::@519::NNF::@60::@61 b
For binary nodes (and, or, eqv)
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.