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

Distinct constraints
[Using integer variables and constraints]

Functions

void Gecode::distinct (Home home, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i\neq x_j$ for all $0\leq i\neq j<|x|$.
void Gecode::distinct (Home home, const IntArgs &n, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i+n_i\neq x_j+n_j$ for all $0\leq i\neq j<|x|$.
void Gecode::distinct (Home home, const BoolVarArgs &b, const IntVarArgs &x, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ b_i=1\wedge b_j=1\to x_i\neq x_j$ for all $0\leq i\neq j<|x|$.
void Gecode::distinct (Home home, const IntVarArgs &x, int c, IntPropLevel ipl=IPL_DEF)
 Post propagator for $ x_i=c\vee x_j=c\vee x_i\neq x_j$ for all $0\leq i\neq j<|x|$.

Function Documentation

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

Post propagator for $ x_i\neq x_j$ for all $0\leq i\neq j<|x|$.

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

Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.

void Gecode::distinct ( Home  home,
const IntArgs &  n,
const IntVarArgs &  x,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ x_i+n_i\neq x_j+n_j$ for all $0\leq i\neq j<|x|$.

  • Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).
  • Throws an exception of type Int::OutOfLimits, if the integers in n exceed the limits in Int::Limits or if the sum of n and x exceed the limits.
  • Throws an exception of type Int::ArgumentSizeMismatch, if x and n are of different size.
  • Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.
void Gecode::distinct ( Home  home,
const BoolVarArgs &  b,
const IntVarArgs &  x,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ b_i=1\wedge b_j=1\to x_i\neq x_j$ for all $0\leq i\neq j<|x|$.

  • Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).
  • Throws an exception of type Int::OutOfLimits, if the variable domains in x are too large (it must hold that one of the values $(\max_{i=0,\ldots,|x|-1} \max(x_i))+|x|$ and $(\min_{i=0,\ldots,|x|-1} \min(x_i))-|x|$ does not exceed the limits in Int::Limits.
  • Throws an exception of type Int::ArgumentSizeMismatch, if b and x are of different size.
  • Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.
void Gecode::distinct ( Home  home,
const IntVarArgs &  x,
int  c,
IntPropLevel  ipl = IPL_DEF 
)

Post propagator for $ x_i=c\vee x_j=c\vee x_i\neq x_j$ for all $0\leq i\neq j<|x|$.

  • Supports value (ipl = IPL_VAL, default), bounds (ipl = IPL_BND), and domain consistency (ipl = IPL_DOM).
  • Throws an exception of type Int::OutOfLimits, if the variable domains in x are too large (it must hold that one of the values $(\max_{i=0,\ldots,|x|-1} \max(x_i))+|x|$ and $(\min_{i=0,\ldots,|x|-1} \min(x_i))-|x|$ does not exceed the limits in Int::Limits.
  • Throws an exception of type Int::ArgumentSame, if x contains the same unassigned variable multiply.