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--; )
170 for (
int i=
x.size()-1;
i--; ) {
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.
Reified membership propagator.
bool zero(void) const
Test whether view is assigned to be zero.
Inverse implication for reification.
union Gecode::@579::NNF::@61 u
Union depending on nodetype t.
ViewArray< View > x
Array of views.
ExecStatus ES_SUBSUMED(Propagator &p)
bool one(void) const
Test whether view is assigned to be one.
First is subset of second iterator.
bool same(const Space &home) const
Test whether array has multiple occurence of the same view.
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.
static void add(Space &home, ValSet &vs, ViewArray< View > &x)
Add values of assigned views in x to value set va.
Gecode::IntArgs i(4, 1, 2, 3, 4)
BoolView b
Boolean control variable.
void flush(void)
Flush entries.
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.
ModEventDelta med
A set of modification events (used during propagation)
struct Gecode::@579::NNF::@61::@62 b
For binary nodes (and, or, eqv)
ValSet vs
Value set storing the values of already assigned views.
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.
Post propagator for SetVar SetOpType SetVar SetRelType r
Post propagator for SetVar SetOpType SetVar y
Iter::Ranges::CompareStatus compare(View x) const
Compare view x with value set.
bool disjoint(I &i, J &j)
Check whether range iterators i and j are disjoint.
Binary disequality propagator.
Post propagator for SetVar x
virtual Propagator * copy(Space &home, bool share)
Copy propagator during cloning.
Class for storing values of already assigned views.
Gecode toplevel namespace
Implication for reification.
int ModEventDelta
Modification event deltas.
int size(void) const
Return size of array (number of elements)
ReProp(Home home, ValSet &vs, ViewArray< View > &x, View y, BoolView b)
Constructor for posting.
Home class for posting propagators
void eliminate(Space &home)
Eliminate views from x that are not equal to y or ar subsumed by vs.
#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.