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];
151 for (
int i=0;
i<
x.size();
i++) {
152 ix[
i].idx=
i; ix[
i].view=
x[
i];
177 for (
int i=0;
i<
x.size();
i++) {
204 for (
int i=0;
i<
x.size();
i++) {
228 for (
int i=
x.size();
i--; ) {
229 ix[
i].idx=
i; ix[
i].view=
x[
i];
253 for (
int i=
x.size();
i--; ) {
254 ix[
i].idx=
i; ix[
i].view=
x[
i];
277 for (
int i=
x.size();
i--; ) {
302 for (
int i=
x.size();
i--; ) {
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);
402 sqr(home, x0, x1, ipl);
421 sqrt(home, x0, x1, ipl);
int n
Number of negative literals for node type.
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.
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 post(Home home, Term *t, int n, FloatRelType frt, FloatVal c)
Post propagator for linear constraint over floats.
#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.
void estimate(Term *t, int n, FloatVal c, FloatNum &l, FloatNum &u)
Estimate lower and upper bounds.
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.
Gecode toplevel namespace
void mod(Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
Post propagator for .
void sqr(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
TieBreak< VarBranch > tiebreak(VarBranch a, VarBranch b)
Combine variable selection criteria a and b for tie-breaking.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
IntPropLevel vbd(IntPropLevel ipl)
Extract value, bounds, or domain propagation from propagation level.
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 argmax(Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
Post propagator for .
void mult(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
void divmod(Home home, IntVar x0, IntVar x1, IntVar x2, IntVar x3, IntPropLevel ipl=IPL_DEF)
Post propagator for .
void sqrt(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
bool same(VarArgArray< Var > x, VarArgArray< Var > y)
Post propagator for SetVar SetOpType SetVar y
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
void argmin(Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
Post propagator for .
void pow(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n\geq 0$.
Post propagator for SetVar x
void nroot(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n\geq 0$.
Gecode::IntArgs i({1, 2, 3, 4})