40 namespace Gecode {
namespace Set {
namespace Rel {
42 template<
class View0,
class View1, ReifyMode rm>
52 template<
class View0,
class View1, ReifyMode rm>
56 x0.update(home,share,p.
x0);
57 x1.update(home,share,p.
x1);
61 template<
class View0,
class View1, ReifyMode rm>
67 template<
class View0,
class View1, ReifyMode rm>
75 template<
class View0,
class View1, ReifyMode rm>
85 template<
class View0,
class View1, ReifyMode rm>
93 template<
class View0,
class View1, ReifyMode rm>
99 template<
class View0,
class View1, ReifyMode rm>
114 if (
x0.cardMin() >
x1.cardMax()) {
141 }
else if (
x0.assigned() &&
x1.assigned()) {
148 if (
x0.cardMin() > 0) {
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)
Propagator for the subset constraint
bool one(void) const
Test whether view is assigned to be one.
Base-class for propagators.
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.
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.
Gecode::IntArgs i(4, 1, 2, 3, 4)
Gecode::Int::BoolView b
Boolean control view.
ModEvent zero_none(Space &home)
Assign not yet assigned view to zero.
Range iterator for computing intersection (binary)
virtual PropCost cost(const Space &home, const ModEventDelta &med) const
Cost function (defined as ternary low)
virtual void reschedule(Space &home)
Schedule function.
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.
const Gecode::PropCond PC_SET_ANY
Propagate when any bound or the cardinality of a view changes.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
virtual Actor * copy(Space &home, bool share)
Copy propagator during cloning.
Reified subset propagator
virtual size_t dispose(Space &home)
Delete actor and return its size.
Propagator for the negated subset constraint
static PropCost ternary(PropCost::Mod m)
Three variables for modifier pcm.
Gecode toplevel namespace
ReSubset(Space &home, bool share, ReSubset &p)
Constructor for cloning p.
Implication for reification.
ModEvent one_none(Space &home)
Assign not yet assigned view to one.
Range iterator for computing set difference.
struct Gecode::@554::NNF::@60::@61 b
For binary nodes (and, or, eqv)
int ModEventDelta
Modification event deltas.
Home class for posting propagators
static ExecStatus post(Home home, View0 x, View1 y, Gecode::Int::BoolView b)
Post propagator for .
virtual size_t dispose(Space &home)
Delete propagator and return its size.
const Gecode::PropCond PC_INT_VAL
Propagate when a view becomes assigned (single value)
Boolean view for Boolean variables.