Generated on Thu Apr 11 13:59:34 2019 for Gecode by doxygen 1.6.3

Arithmetic constraints
[Using integer variables and constraints]

Functions

void Gecode::min (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \min\{x_0,x_1\}=x_2$.
void Gecode::min (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \min x=y$.
void Gecode::max (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \max\{x_0,x_1\}=x_2$.
void Gecode::max (Home home, const IntVarArgs &x, IntVar y, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \max x=y$.
void Gecode::argmin (Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)=y$.
void Gecode::argmin (Home home, const IntVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)+o=y$.
void Gecode::argmax (Home home, const IntVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)=y$.
void Gecode::argmax (Home home, const IntVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)+o=y$.
void Gecode::argmin (Home home, const BoolVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)=y$.
void Gecode::argmin (Home home, const BoolVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmin}(x)-o=y$.
void Gecode::argmax (Home home, const BoolVarArgs &x, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)=y$.
void Gecode::argmax (Home home, const BoolVarArgs &x, int o, IntVar y, bool tiebreak=true, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ \operatorname{argmax}(x)-o=y$.
void Gecode::abs (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ |x_0|=x_1$.
void Gecode::mult (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\cdot x_1=x_2$.
void Gecode::divmod (Home home, IntVar x0, IntVar x1, IntVar x2, IntVar x3, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2 \land x_0\ \mathrm{mod}\ x_1 = x_3$.
void Gecode::div (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.
void Gecode::mod (Home home, IntVar x0, IntVar x1, IntVar x2, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0\ \mathrm{mod}\ x_1=x_2$.
void Gecode::sqr (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0^2=x_1$.
void Gecode::sqrt (Home home, IntVar x0, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\lfloor\sqrt{x_0}\rfloor=x_1$.
void Gecode::pow (Home home, IntVar x0, int n, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $x_0^n=x_1$.
void Gecode::nroot (Home home, IntVar x0, int n, IntVar x1, IntPropLevel ipl=IPL_DEF)
 Post propagator for $\lfloor\sqrt[n]{x_0}\rfloor=x_1$.

Function Documentation

void Gecode::min ( Home  home,
IntVar  x0,
IntVar  x1,
IntVar  x2,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \min\{x_0,x_1\}=x_2$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

void Gecode::min ( Home  home,
const IntVarArgs &  x,
IntVar  y,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \min x=y$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

If x is empty, an exception of type Int::TooFewArguments is thrown.

void Gecode::max ( Home  home,
IntVar  x0,
IntVar  x1,
IntVar  x2,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \max\{x_0,x_1\}=x_2$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

void Gecode::max ( Home  home,
const IntVarArgs &  x,
IntVar  y,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \max x=y$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

If x is empty, an exception of type Int::TooFewArguments is thrown.

void Gecode::argmin ( Home  home,
const IntVarArgs &  x,
IntVar  y,
bool  tiebreak = true,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \operatorname{argmin}(x)=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

void Gecode::argmin ( Home  home,
const IntVarArgs &  x,
int  o,
IntVar  y,
bool  tiebreak = true,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \operatorname{argmin}(x)+o=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

void Gecode::argmax ( Home  home,
const IntVarArgs &  x,
IntVar  y,
bool  tiebreak = true,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \operatorname{argmax}(x)=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

void Gecode::argmax ( Home  home,
const IntVarArgs &  x,
int  o,
IntVar  y,
bool  tiebreak = true,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \operatorname{argmax}(x)+o=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

void Gecode::argmin ( Home  home,
const BoolVarArgs &  x,
IntVar  y,
bool  tiebreak = true,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \operatorname{argmin}(x)=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

void Gecode::argmin ( Home  home,
const BoolVarArgs &  x,
int  o,
IntVar  y,
bool  tiebreak = true,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \operatorname{argmin}(x)-o=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

void Gecode::argmax ( Home  home,
const BoolVarArgs &  x,
IntVar  y,
bool  tiebreak = true,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \operatorname{argmax}(x)=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

void Gecode::argmax ( Home  home,
const BoolVarArgs &  x,
int  o,
IntVar  y,
bool  tiebreak = true,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ \operatorname{argmax}(x)-o=y$.

In case of ties, the smallest value for y is chosen (provided tiebreak is true).

If x is empty, an exception of type Int::TooFewArguments is thrown. If y occurs in x, an exception of type Int::ArgumentSame is thrown.

void Gecode::abs ( Home  home,
IntVar  x0,
IntVar  x1,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ |x_0|=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

void Gecode::mult ( Home  home,
IntVar  x0,
IntVar  x1,
IntVar  x2,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $x_0\cdot x_1=x_2$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

void Gecode::divmod ( Home  home,
IntVar  x0,
IntVar  x1,
IntVar  x2,
IntVar  x3,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $x_0\ \mathrm{div}\ x_1=x_2 \land x_0\ \mathrm{mod}\ x_1 = x_3$.

Supports bounds consistency (ipl = IPL_BND, default).

void Gecode::div ( Home  home,
IntVar  x0,
IntVar  x1,
IntVar  x2,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $x_0\ \mathrm{div}\ x_1=x_2$.

Supports bounds consistency (ipl = IPL_BND, default).

void Gecode::mod ( Home  home,
IntVar  x0,
IntVar  x1,
IntVar  x2,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $x_0\ \mathrm{mod}\ x_1=x_2$.

Supports bounds consistency (ipl = IPL_BND, default).

void Gecode::sqr ( Home  home,
IntVar  x0,
IntVar  x1,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $x_0^2=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

void Gecode::sqrt ( Home  home,
IntVar  x0,
IntVar  x1,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\lfloor\sqrt{x_0}\rfloor=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

void Gecode::pow ( Home  home,
IntVar  x0,
int  n,
IntVar  x1,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $x_0^n=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::OutOfLimits, if n is negative.

void Gecode::nroot ( Home  home,
IntVar  x0,
int  n,
IntVar  x1,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $\lfloor\sqrt[n]{x_0}\rfloor=x_1$.

Supports both bounds consistency (ipl = IPL_BND, default) and domain consistency (ipl = IPL_DOM).

Throws an exception of type Int::OutOfLimits, if n is not strictly positive.