34namespace 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.
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 toplevel namespace
Post propagator for SetVar SetOpType SetVar y
@ ES_OK
Execution is okay.
Post propagator for SetVar x
Gecode::FloatVal c(-8, 8)
bool one(const Gecode::FloatValArgs &a)
Check whether has only one coefficients.
Gecode::IntArgs i({1, 2, 3, 4})