37 LinkMulti::LinkMulti(Home home, ViewArray<BoolView>&
x, IntView
y,
int o0)
39 (home,
x,
y),
c(home), status(S_NONE), o(o0) {
40 x.subscribe(home,*
new (home) Advisor(home,*
this,c));
45 LinkMulti::LinkMulti(Space& home, LinkMulti& p)
47 (home,p), status(S_NONE), o(p.o) {
48 assert(p.status == S_NONE);
61 }
else if (
y.assigned()) {
64 for (
int i=0; i<j; i++)
66 for (
int i=j+1; i<n; i++)
69 for (
int i=0; i<n; i++)
71 for (
int j=0; j<i; j++)
73 for (
int j=i+1; j<n; j++)
77 }
else if (
x[i].zero()) {
80 (void)
new (home) LinkMulti(home,
x,
y,o);
Home class for posting propagators
static ExecStatus post(Home home, ViewArray< BoolView > &x, IntView y, int o)
Post propagator for .
Integer view for integer variables.
#define GECODE_ME_CHECK(me)
Check whether modification event me is failed, and forward failure.
const Gecode::PropCond PC_BOOL_NONE
Propagation condition to be ignored (convenience)
const Gecode::PropCond PC_INT_DOM
Propagate when domain changes.
Gecode toplevel namespace
Post propagator for SetVar SetOpType SetVar y
@ ES_OK
Execution is okay.
Post propagator for SetVar x
Gecode::FloatVal c(-8, 8)