Generated on Wed Sep 5 2012 18:52:16 for Gecode by doxygen 1.8.1.1
Linear constraints over integer variables

Functions

void Gecode::linear (Home home, const IntVarArgs &x, IntRelType r, int c, IntConLevel icl=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r c$.
void Gecode::linear (Home home, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel icl=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r y$.
void Gecode::linear (Home home, const IntVarArgs &x, IntRelType r, int c, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_r c\right)\Leftrightarrow b$.
void Gecode::linear (Home home, const IntVarArgs &x, IntRelType r, IntVar y, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_r y\right)\Leftrightarrow b$.
void Gecode::linear (Home home, const IntArgs &a, const IntVarArgs &x, IntRelType r, int c, IntConLevel icl=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r c$.
void Gecode::linear (Home home, const IntArgs &a, const IntVarArgs &x, IntRelType r, IntVar y, IntConLevel icl=ICL_DEF)
 Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r y$.
void Gecode::linear (Home home, const IntArgs &a, const IntVarArgs &x, IntRelType r, int c, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r c\right)\Leftrightarrow b$.
void Gecode::linear (Home home, const IntArgs &a, const IntVarArgs &x, IntRelType r, IntVar y, BoolVar b, IntConLevel icl=ICL_DEF)
 Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r y\right)\Leftrightarrow b$.

Detailed Description

All variants for linear constraints over integer variables share
the following properties:
 - Bounds consistency (over the real numbers) is supported for
   all constraints (actually, for disequlities always domain consistency
   is used as it is cheaper). Domain consistency is supported for all
   non-reified constraint. As bounds consistency for inequalities
   coincides with domain consistency, the only
   real variation is for linear equations. Domain consistent
   linear equations have exponential complexity, so use with care!
 - Variables occurring multiply in the argument arrays are replaced
   by a single occurrence: for example, \form#132 becomes

$(a+b)x$.


Function Documentation

void Gecode::linear ( Home  home,
const IntVarArgs &  x,
IntRelType  r,
int  c,
IntConLevel  icl 
)

Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r c$.

Definition at line 45 of file linear-int.cpp.

void Gecode::linear ( Home  home,
const IntVarArgs &  x,
IntRelType  r,
IntVar  y,
IntConLevel  icl 
)

Post propagator for $\sum_{i=0}^{|x|-1}x_i\sim_r y$.

Definition at line 101 of file linear-int.cpp.

void Gecode::linear ( Home  home,
const IntVarArgs &  x,
IntRelType  r,
int  c,
BoolVar  b,
IntConLevel   
)

Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_r c\right)\Leftrightarrow b$.

Definition at line 58 of file linear-int.cpp.

void Gecode::linear ( Home  home,
const IntVarArgs &  x,
IntRelType  r,
IntVar  y,
BoolVar  b,
IntConLevel   
)

Post propagator for $\left(\sum_{i=0}^{|x|-1}x_i\sim_r y\right)\Leftrightarrow b$.

Definition at line 131 of file linear-int.cpp.

void Gecode::linear ( Home  home,
const IntArgs &  a,
const IntVarArgs &  x,
IntRelType  r,
int  c,
IntConLevel  icl = ICL_DEF 
)

Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r c$.

Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.

Definition at line 71 of file linear-int.cpp.

void Gecode::linear ( Home  home,
const IntArgs &  a,
const IntVarArgs &  x,
IntRelType  r,
IntVar  y,
IntConLevel  icl = ICL_DEF 
)

Post propagator for $\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r y$.

Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.

Definition at line 145 of file linear-int.cpp.

void Gecode::linear ( Home  home,
const IntArgs &  a,
const IntVarArgs &  x,
IntRelType  r,
int  c,
BoolVar  b,
IntConLevel  icl = ICL_DEF 
)

Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r c\right)\Leftrightarrow b$.

Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.

Definition at line 86 of file linear-int.cpp.

void Gecode::linear ( Home  home,
const IntArgs &  a,
const IntVarArgs &  x,
IntRelType  r,
IntVar  y,
BoolVar  b,
IntConLevel  icl = ICL_DEF 
)

Post propagator for $\left(\sum_{i=0}^{|x|-1}a_i\cdot x_i\sim_r y\right)\Leftrightarrow b$.

Throws an exception of type Int::ArgumentSizeMismatch, if a and x are of different size.

Definition at line 177 of file linear-int.cpp.