// Create propagator and initialize NoOverlap(Home home, ViewArray<IntView>& x0, int w0[], ViewArray<IntView>& y0, int h0[]) : Propagator(home), x(x0), w(w0), y(y0), h(h0) { x.subscribe(home,*this,PC_INT_BND); y.subscribe(home,*this,PC_INT_BND); }
forceinline LinkMulti::LinkMulti(Home home, ViewArray<BoolView>& x, IntView y, int o0) : MixNaryOnePropagator<BoolView,PC_BOOL_NONE,IntView,PC_INT_DOM> (home,x,y), c(home), status(S_NONE), o(o0) { x.subscribe(home,*new (home) Advisor(home,*this,c)); // Propagator is scheduled because of the dependency subscription }
NonLinearity(Home home, ViewArray<IntView>& x0, int s[], bool a[], int n0, int m0, int t0, int sz) : Propagator(home), x(x0), scores(s), assigned(a), n(n0), m(m0), threshold(t0), size(sz), pow2n(1U << n), pow2m(1U << m) { // only do something when a vector becomes assigned x.subscribe(home, *this, PC_INT_VAL); }