34 namespace Gecode {
namespace Int {
namespace Channel {
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);
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()) {
int p
Number of positive literals for node type.
int n
Number of negative literals for node type.
Node * x
Pointer to corresponding Boolean expression node.
Home class for posting propagators
Link propagator for multiple Boolean views.
Integer view for integer variables.
bool assigned(void) const
Test whether view is assigned.
@ ES_OK
Execution is okay.
Post propagator for SetVar SetOpType SetVar y
void post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
#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::FloatVal c(-8, 8)
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
Gecode::IntArgs i({1, 2, 3, 4})