98 for (
int i=0;
i<
x.size();
i++)
124 for (
int i=0;
i<
x.size();
i++) {
125 ix[
i].idx=
i; ix[
i].view=
x[
i];
129 ::
post(home,ix,yv)));
132 ::
post(home,ix,yv)));
151 for (
int i=0;
i<
x.size();
i++) {
152 ix[
i].idx=
i; ix[
i].view=
x[
i];
156 ::
post(home,ix,yv)));
159 ::
post(home,ix,yv)));
177 for (
int i=0;
i<
x.size();
i++) {
182 ::
post(home,ix,yv)));
185 ::
post(home,ix,yv)));
204 for (
int i=0;
i<
x.size();
i++) {
209 ::
post(home,ix,yv)));
212 ::
post(home,ix,yv)));
228 for (
int i=
x.size();
i--; ) {
229 ix[
i].idx=
i; ix[
i].view=
x[
i];
233 ::
post(home,ix,yv)));
236 ::
post(home,ix,yv)));
253 for (
int i=
x.size();
i--; ) {
254 ix[
i].idx=
i; ix[
i].view=
x[
i];
258 ::
post(home,ix,yv)));
261 ::
post(home,ix,yv)));
277 for (
int i=
x.size();
i--; ) {
282 ::
post(home,ix,yv)));
285 ::
post(home,ix,yv)));
302 for (
int i=
x.size();
i--; ) {
307 ::
post(home,ix,yv)));
310 ::
post(home,ix,yv)));
335 t[0].a = 1;
t[0].x = prod;
336 t[1].a = 1;
t[1].x = x3;
342 t[2].a=-1;
t[2].x=x0;
344 if (home.
failed())
return;
365 divmod(home, x0, x1, _div, x2, ipl);
375 ::
post(home,x0,x1,ops));
378 ::
post(home,x0,x1,ops));
389 ::
post(home,x0,x1,ops));
392 ::
post(home,x0,x1,ops));
402 sqr(home, x0, x1, ipl);
408 ::
post(home,x0,x1,ops));
411 ::
post(home,x0,x1,ops));
421 sqrt(home, x0, x1, ipl);
427 ::
post(home,x0,x1,ops));
430 ::
post(home,x0,x1,ops));
int n
Number of negative literals for node type.
Node * x
Pointer to corresponding Boolean expression node.
Passing Boolean variables.
Home class for posting propagators
bool failed(void) const
Check whether corresponding space is failed.
Passing integer variables.
Exception: Arguments contain same variable multiply
Bounds consistent absolute value propagator.
Domain consistent absolute value propagator.
Argument maximum propagator.
Bounds consistent division propagator.
Integer division/modulo propagator.
Bounds consistent ternary maximum propagator.
Domain consistent ternary maximum propagator.
static ExecStatus post(Home home, IntView x0, IntView x1, IntView x2)
Post propagator .
static ExecStatus post(Home home, IntView x0, IntView x1, IntView x2)
Post propagator .
Bounds consistent n-ary maximum propagator.
Domain consistent n-ary maximum propagator.
Bounds consistent n-th root propagator.
Domain consistent n-th root propagator.
Bounds consistent power propagator.
Domain consistent power propagator.
Operations for power and nroot propagators.
Operations for square and square-root propagators.
An array of IdxView pairs.
Integer view for integer variables.
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
ModEvent le(Space &home, int n)
Restrict domain values to be less than n.
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
Class for describing linear term .
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
ModEvent le(Space &home, int n)
Restrict domain values to be less than n.
Exception: Too few arguments available in argument array
void sqr(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
void abs(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
void div(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
void mult(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
void sqrt(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
void pow(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n\geq 0$.
void nroot(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n\geq 0$.
void mod(Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl)
Post propagator for .
void argmax(Home home, const IntVarArgs &x, IntVar y, bool tiebreak, IntPropLevel)
Post propagator for .
void divmod(Home home, IntVar x0, IntVar x1, IntVar x2, IntVar x3, IntPropLevel)
Post propagator for .
void argmin(Home home, const IntVarArgs &x, IntVar y, bool tiebreak, IntPropLevel)
Post propagator for .
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.
void post(Home home, Term< BoolView > *t, int n, IntRelType irt, IntView x, int c, IntPropLevel)
Post propagator for linear constraint over Booleans.
#define GECODE_POST
Check for failure in a constraint post function.
#define GECODE_ES_FAIL(es)
Check whether execution status es is failed, and fail space home.
#define GECODE_ME_FAIL(me)
Check whether modification event me is failed, and fail space home.
IntPropLevel
Propagation levels for integer propagators.
@ IPL_DOM
Domain propagation Options: basic versus advanced propagation.
@ IPL_BND
Bounds propagation.
IntPropLevel vbd(IntPropLevel ipl)
Extract value, bounds, or domain propagation from propagation level.
bool same(VarArgArray< Var > x, VarArgArray< Var > y)
void positive(int n, const char *l)
Check whether n is in range and strictly positive, otherwise throw out of limits with information l.
void nonnegative(int n, const char *l)
Check whether n is in range and nonnegative, otherwise throw out of limits with information l.
const int min
Smallest allowed integer value.
const int max
Largest allowed integer value.
void estimate(Term< View > *t, int n, int c, int &l, int &u)
Estimate lower and upper bounds.
Gecode::IntArgs i({1, 2, 3, 4})
LDSB< TieBreak > tiebreak("TieBreak")