Go to the documentation of this file.
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));
void pow(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n\geq 0$.
Post propagator for SetVar x
Post propagator for SetVar SetOpType SetVar y
#define GECODE_ES_FAIL(es)
Check whether execution status es is failed, and fail space home.
Class for describing linear term .
void max(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
An array of IdxView pairs.
Passing integer variables.
TieBreak< VarBranch > tiebreak(VarBranch a, VarBranch b)
Combine variable selection criteria a and b for tie-breaking.
void sqr(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
Operations for square and square-root propagators.
Bounds consistent absolute value propagator.
static ExecStatus post(Home home, IntView x0, IntView x1, IntView x2)
Post propagator .
IntPropLevel
Propagation levels for integer propagators.
void argmin(Home home, const IntVarArgs &x, IntVar y, bool tiebreak, IntPropLevel)
Post propagator for .
Bounds consistent division propagator.
void div(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
Gecode toplevel namespace
IntPropLevel vbd(IntPropLevel ipl)
Extract value, bounds, or domain propagation from propagation level.
static ExecStatus post(Home home, IntView x0, IntView x1, IntView x2)
Post propagator .
Operations for power and nroot propagators.
Exception: Arguments contain same variable multiply
Passing Boolean variables.
Argument maximum propagator.
void nroot(Home home, FloatVar x0, int n, FloatVar x1)
Post propagator for for $n\geq 0$.
Home class for posting propagators
Domain consistent n-ary maximum propagator.
Bounds consistent ternary maximum propagator.
void argmax(Home home, const IntVarArgs &x, IntVar y, bool tiebreak, IntPropLevel)
Post propagator for .
void sqrt(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
Domain consistent power propagator.
ModEvent le(Space &home, int n)
Restrict domain values to be less than n.
@ IPL_DOM
Domain propagation Options: basic versus advanced propagation.
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
TFE post(PropagatorGroup g)
Only post functions (but not propagators) from g are considered.
void nonnegative(int n, const char *l)
Check whether n is in range and nonnegative, otherwise throw out of limits with information l.
Domain consistent ternary maximum propagator.
Bounds consistent power propagator.
const int max
Largest allowed integer value.
void mult(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
@ IPL_BND
Bounds propagation.
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 abs(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
void divmod(Home home, IntVar x0, IntVar x1, IntVar x2, IntVar x3, IntPropLevel)
Post propagator for .
bool failed(void) const
Check whether corresponding space is failed.
void mod(Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl)
Post propagator for .
Domain consistent absolute value propagator.
#define GECODE_POST
Check for failure in a constraint post function.
Domain consistent n-th root propagator.
Integer view for integer variables.
Integer division/modulo propagator.
#define GECODE_ME_FAIL(me)
Check whether modification event me is failed, and fail space home.
void estimate(Term< View > *t, int n, int c, int &l, int &u)
Estimate lower and upper bounds.
const int min
Smallest allowed integer value.
Bounds consistent n-ary maximum propagator.
void post(Home home, Term< BoolView > *t, int n, IntRelType irt, IntView x, int c, IntPropLevel)
Post propagator for linear constraint over Booleans.
void min(Home home, FloatVar x0, FloatVar x1, FloatVar x2)
Post propagator for .
ModEvent lq(Space &home, int n)
Restrict domain values to be less or equal than n.
bool same(VarArgArray< Var > x, VarArgArray< Var > y)
ModEvent gq(Space &home, int n)
Restrict domain values to be greater or equal than n.
Bounds consistent n-th root propagator.
int n
Number of negative literals for node type.
Gecode::IntArgs i({1, 2, 3, 4})
Exception: Too few arguments available in argument array
ModEvent le(Space &home, int n)
Restrict domain values to be less than n.