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>
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>
104 template<
class View0,
class View1, ReifyMode rm,
bool strict>
110 template<
class View0,
class View1, ReifyMode rm,
bool strict>
124 if (
x0.cardMax() == 0) {
125 if ( (!strict) ||
x1.cardMin() > 0) {
130 if (strict &&
x1.cardMax() == 0) {
137 if (
x0.assigned() &&
x1.assigned()) {
145 if ((!strict) &&
x0.cardMax() ==
x1.cardMax()) {
164 if (strict &&
x0.cardMax() ==
x1.cardMax()) {
178 assert(min01 != min10);
190 if (
x1.cardMax() > 0) {
193 int x1umin=x1u.
min();
195 if (
d() && d.
min() < x1umin) {
202 if (
x0.cardMax() > 0) {
205 int x0umin=x0u.
min();
207 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.
void update(Space &home, VarImpView< Var > &y)
Update this view to be a clone of view y.
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 .
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.
bool same(VX, VY)
Test whether two views are in fact the same.
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)
#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::@585::NNF::@62::@63 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)
Copy propagator during cloning.
ReLq(Space &home, ReLq &p)
Constructor for cloning p.
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value)
Boolean view for Boolean variables.