40 namespace Gecode {
namespace Int {
namespace Member {
42 template<
class View, ReifyMode rm>
46 :
Prop<View>(home,vs,x,y),
b(b0) {
50 template<
class View, ReifyMode rm>
96 template<
class View, ReifyMode rm>
99 :
Prop<View>(home, share, p) {
103 template<
class View, ReifyMode rm>
109 template<
class View, ReifyMode rm>
114 return sizeof(*this);
117 template<
class View, ReifyMode rm>
136 for (
int i=
x.size();
i--; )
145 switch (vs.compare(y)) {
170 for (
int i=
x.size()-1;
i--; ) {
#define GECODE_REWRITE(prop, post)
Rewrite propagator by executing post function.
Reified membership propagator.
Inverse implication for reification.
void eliminate(Term< BoolView > *t, int &n, long long int &d)
Eliminate assigned views.
ExecStatus ES_SUBSUMED(Propagator &p)
First is subset of second iterator.
Base-class for propagators.
Propagation has computed fixpoint.
void unique(const Space &home)
Remove all duplicate views from array (changes element order)
Range iterator for integer views.
#define GECODE_ES_CHECK(es)
Check whether execution status es is failed or subsumed, and forward failure or subsumption.
static ExecStatus post(Home home, ViewArray< View > &x, View y, BoolView b)
Post propagator for .
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)
BoolView b
Boolean control variable.
virtual size_t dispose(Space &home)
Delete propagator and return its size.
const Gecode::ModEvent ME_INT_VAL
Domain operation has resulted in a value (assigned variable)
Reified binary domain consistent equality propagator.
Range iterator for union of iterators.
Iter::Ranges::CompareStatus compare(View x) const
Compare view x with value set.
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.
virtual ExecStatus propagate(Space &home, const ModEventDelta &med)
Perform propagation.
union Gecode::@518::NNF::@57 u
Union depending on nodetype t.
bool one(void) const
Test whether view is assigned to be one.
Node * x
Pointer to corresponding Boolean expression node.
bool disjoint(I &i, J &j)
Check whether range iterators i and j are disjoint.
bool same(const Space &home) const
Test whether array has multiple occurence of the same view.
Binary disequality propagator.
virtual Propagator * copy(Space &home, bool share)
Copy propagator during cloning.
Class for storing values of already assigned views.
int size(void) const
Return size of array (number of elements)
struct Gecode::@518::NNF::@57::@58 b
For binary nodes (and, or, eqv)
Gecode toplevel namespace
Implication for reification.
bool zero(void) const
Test whether view is assigned to be zero.
int ModEventDelta
Modification event deltas.
ReProp(Home home, ValSet &vs, ViewArray< View > &x, View y, BoolView b)
Constructor for posting.
Home class for posting propagators
#define GECODE_NEVER
Assert that this command is never executed.
const Gecode::PropCond PC_BOOL_VAL
Propagate when a view becomes assigned (single value)
Boolean view for Boolean variables.