Gecode::Int::Linear Namespace Reference

Linear propagators More...

## Classes

class | LinBin
| Base-class for binary linear propagators. More...
class | ReLinBin
| Base-class for reified binary linear propagators. More...
class | EqBin
| Propagator for bounds consistent binary linear equality More...
class | ReEqBin
| Propagator for reified bounds consistent binary linear equality More...
class | NqBin
| Propagator for bounds consistent binary linear disequality More...
class | LqBin
| Propagator for bounds consistent binary linear less or equal More...
class | GqBin
| Propagator for bounds consistent binary linear greater or equal More...
class | ReLqBin
| Propagator for reified bounds consistent binary linear less or equal More...
class | LinTer
| Base-class for ternary linear propagators. More...
class | EqTer
| Propagator for bounds consistent ternary linear equality More...
class | NqTer
| Propagator for bounds consistent ternary linear disquality More...
class | LqTer
| Propagator for bounds consistent ternary linear less or equal More...
class | Lin
| Base-class for n-ary linear propagators. More...
class | ReLin
| Base-class for reified n-ary linear propagators. More...
class | Eq
| Propagator for bounds consistent n-ary linear equality More...
class | DomEq
| Propagator for domain consistent n-ary linear equality More...
class | ReEq
| Propagator for reified bounds consistent n-ary linear equality More...
class | Nq
| Propagator for bounds consistent n-ary linear disequality More...
class | Lq
| Propagator for bounds consistent n-ary linear less or equal More...
class | ReLq
| Propagator for reified bounds consistent n-ary linear less or equal More...
class | LinBoolInt
| Baseclass for integer Boolean sum. More...
class | EqBoolInt
| Propagator for integer equal to Boolean sum (cardinality) More...
class | GqBoolInt
| Propagator for integer less or equal to Boolean sum (cardinality) More...
class | NqBoolInt
| Propagator for integer disequal to Boolean sum (cardinality) More...
class | ReLinBoolInt
| Baseclass for reified integer Boolean sum. More...
class | BoolNegTraits
| Traits for Boolean negation view. More...
class | ReGqBoolInt
| Propagator for reified integer less or equal to Boolean sum (cardinality) More...
class | ReEqBoolInt
| Propagator for reified integer equal to Boolean sum (cardinality) More...
class | LinBoolView
| Base-class for Boolean linear propagators. More...
class | EqBoolView
| Propagator for equality to Boolean sum (cardinality) More...
class | NqBoolView
| Propagator for disequality to Boolean sum (cardinality) More...
class | GqBoolView
| Propagator for greater or equal to Boolean sum (cardinality) More...
class | ScaleBool
| Coefficient and Boolean view. More...
class | ScaleBoolArray
| Array of scale Boolean views. More...
class | EmptyScaleBoolArray
| Empty array of scale Boolean views. More...
class | LinBoolScale
| Base class for linear Boolean constraints with coefficients. More...
class | EqBoolScale
| Propagator for equality to Boolean sum with coefficients More...
class | LqBoolScale
| Propagator for inequality to Boolean sum with coefficients More...
class | NqBoolScale
| Propagator for disequality to Boolean sum with coefficients More...
class | Term
| Class for describing linear term . More...
class | BoolNegTraits< BoolView >
| Traits for Boolean negation view. More...
class | BoolNegTraits< NegBoolView >
| Traits for Boolean negation view. More...
class | SupportSet
| Set for support information More...
class | SupportIter
| Base-class for support-based iterator. More...
class | PosSupportIter
| Support-based iterator for positive view. More...
class | NegSupportIter
| Support-based iterator for negative view. More...
class | NoView
| No view serves as filler for empty view arrays. More...
class | TermByView
| Sort linear terms by view. More...
class | TermBySizePos
| Sort linear terms by coefficient size and original position. More...

## Enumerations

enum | BinMod { BM_X0_MIN = 1<<0 , BM_X0_MAX = 1<<1 , BM_X1_MIN = 1<<2 , BM_X1_MAX = 1<<3 , BM_ALL = BM_X0_MIN|BM_X0_MAX|BM_X1_MIN|BM_X1_MAX }
| Describe which view has been modified how. More...
enum | TerMod { TM_X0_MIN = 1<<0 , TM_X0_MAX = 1<<1 , TM_X1_MIN = 1<<2 , TM_X1_MAX = 1<<3 , TM_X2_MIN = 1<<4 , TM_X2_MAX = 1<<5 , TM_ALL = TM_X0_MIN|TM_X0_MAX|TM_X1_MIN|TM_X1_MAX|TM_X2_MIN|TM_X2_MAX }
| Describe which view has been modified how. More...

## Functions

template<class View>
void | estimate (Term< View > *t, int n, int c, int &l, int &u)
| Estimate lower and upper bounds.
void | post (Home home, Term< IntView > *t, int n, IntRelType irt, int c, IntPropLevel=IPL_DEF)
| Post propagator for linear constraint over integers.
void | post (Home home, Term< IntView > *t, int n, IntRelType irt, int c, Reify r, IntPropLevel=IPL_DEF)
| Post reified propagator for linear constraint.
void | post (Home home, Term< BoolView > *t, int n, IntRelType irt, int c, IntPropLevel=IPL_DEF)
| Post propagator for linear constraint over Booleans.
void | post (Home home, Term< BoolView > *t, int n, IntRelType irt, int c, Reify r, IntPropLevel=IPL_DEF)
| Post propagator for reified linear constraint over Booleans.
void | post (Home home, Term< BoolView > *t, int n, IntRelType irt, IntView y, int c=0, IntPropLevel=IPL_DEF)
| Post propagator for linear constraint over Booleans.
void | post (Home home, Term< BoolView > *t, int n, IntRelType irt, IntView y, Reify r, IntPropLevel=IPL_DEF)
| Post propagator for reified linear constraint over Booleans.
void | eliminate (Term< BoolView > *t, int &n, long long int &d)
| Eliminate assigned views.
void | rewrite (IntRelType &r, long long int &d)
| Rewrite non-strict relations.
void | post_pos_unit (Home home, Term< BoolView > *t_p, int n_p, IntRelType irt, IntView y, int c)
void | post_pos_unit (Home home, Term< BoolView > *t_p, int n_p, IntRelType irt, ZeroIntView, int c)
void | post_pos_unit (Home home, Term< BoolView > *t_p, int n_p, IntRelType irt, int c, Reify r, IntPropLevel)
void | post_neg_unit (Home home, Term< BoolView > *t_n, int n_n, IntRelType irt, IntView y, int c)
void | post_neg_unit (Home home, Term< BoolView > *t_n, int n_n, IntRelType irt, ZeroIntView, int c)
void | post_neg_unit (Home home, Term< BoolView > *t_n, int n_n, IntRelType irt, int c, Reify r, IntPropLevel)
void | post_mixed (Home home, Term< BoolView > *t_p, int n_p, Term< BoolView > *t_n, int n_n, IntRelType irt, IntView y, int c)
void | post_mixed (Home home, Term< BoolView > *t_p, int n_p, Term< BoolView > *t_n, int n_n, IntRelType irt, ZeroIntView y, int c)
template<class View>
void | post_all (Home home, Term< BoolView > *t, int n, IntRelType irt, View x, int c)
template<class P, class N>
bool | isunit (ViewArray< P > &, ViewArray< N > &)
| Test if only unit-coefficient arrays used.
template<>
bool | isunit (ViewArray< IntView > &, ViewArray< IntView > &)
template<>
bool | isunit (ViewArray< IntView > &, ViewArray< NoView > &)
template<>
bool | isunit (ViewArray< NoView > &, ViewArray< IntView > &)
template<class Val, class View>
void | bounds_p (ModEventDelta med, ViewArray< View > &x, Val &c, Val &sl, Val &su)
template<class Val, class View>
void | bounds_n (ModEventDelta med, ViewArray< View > &y, Val &c, Val &sl, Val &su)
template<class Val, class P, class N>
ExecStatus | prop_bnd (Space &home, ModEventDelta med, Propagator &p, ViewArray< P > &x, ViewArray< N > &y, Val &c)
template<class Val, class P, class N>
Actor * | eqtobin (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
| Rewriting of equality to binary propagators.
template<class Val>
Actor * | eqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val>
Actor * | eqtobin (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val>
Actor * | eqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val, class P, class N>
Actor * | eqtoter (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
| Rewriting of equality to ternary propagators.
template<class Val>
Actor * | eqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val>
Actor * | eqtoter (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val>
Actor * | eqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val, class P, class N>
Actor * | nqtobin (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
| Rewriting of disequality to binary propagators.
template<class Val>
Actor * | nqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val>
Actor * | nqtobin (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val>
Actor * | nqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val, class P, class N>
Actor * | nqtoter (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
| Rewriting of disequality to ternary propagators.
template<class Val>
Actor * | nqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val>
Actor * | nqtoter (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val>
Actor * | nqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val, class P, class N>
Actor * | lqtobin (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
| Rewriting of inequality to binary propagators.
template<class Val>
Actor * | lqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val>
Actor * | lqtobin (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val>
Actor * | lqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val, class P, class N>
Actor * | lqtoter (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
| Rewriting of inequality to ternary propagators.
template<class Val>
Actor * | lqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val>
Actor * | lqtoter (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val>
Actor * | lqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
void | eliminate (Term< IntView > *t, int &n, long long int &d)
| Eliminate assigned views.
void | rewrite (IntRelType &irt, long long int &d, Term< IntView > *&t_p, int &n_p, Term< IntView > *&t_n, int &n_n)
| Rewrite all inequations in terms of IRT_LQ.
bool | precision (Term< IntView > *t_p, int n_p, Term< IntView > *t_n, int n_n, long long int d)
| Decide the required precision and check for overflow.
template<class Val, class View>
void | post_nary (Home home, ViewArray< View > &x, ViewArray< View > &y, IntRelType irt, Val c)
| Posting n-ary propagators.
template<class Val, class View>
void | post_nary (Home home, ViewArray< View > &x, ViewArray< View > &y, IntRelType irt, Val c, Reify r)
| Posting reified n-ary propagators.
template<class CtrlView>
void | posteqint (Home home, IntView &x, int c, CtrlView b, ReifyMode rm, IntPropLevel ipl)
int | gcd (int a, int b)
| Compute the greatest common divisor of a and b.
template<class View>
bool | normalize (Term< View > *t, int &n, Term< View > *&t_p, int &n_p, Term< View > *&t_n, int &n_n, int &g)
| Normalize linear integer constraints.
template<class Val, class View>
void | bounds_p (ModEventDelta med, ViewArray< View > &x, Val &c, Val &sl, Val &su)
| Compute bounds information for positive views.
template<class Val, class View>
void | bounds_n (ModEventDelta med, ViewArray< View > &y, Val &c, Val &sl, Val &su)
| Compute bounds information for negative views.
template<class Char, class Traits>
std::basic_ostream< Char, Traits > & | operator<< (std::basic_ostream< Char, Traits > &os, const NoView &)
| Print integer variable view.

## Detailed Description

Linear propagators

## Enumeration Type Documentation

## BinMod

enum Gecode::Int::Linear::BinMod

Describe which view has been modified how.

Enumerator
BM_X0_MIN |
BM_X0_MAX |
BM_X1_MIN |
BM_X1_MAX |
BM_ALL |

Definition at line 171 of file int-bin.hpp.

## TerMod

enum Gecode::Int::Linear::TerMod

Describe which view has been modified how.

Enumerator
TM_X0_MIN |
TM_X0_MAX |
TM_X1_MIN |
TM_X1_MAX |
TM_X2_MIN |
TM_X2_MAX |
TM_ALL |

Definition at line 128 of file int-ter.hpp.

## Function Documentation

## estimate()

template<class View>

void Gecode::Int::Linear::estimate | ( | Term< View > * | t,
|  | int | n,
|  | int | c,
|  | int & | l,
|  | int & | u )

inline

Estimate lower and upper bounds.

Estimates the boundaries for a linear expression . If the boundaries exceed the limits as defined in Limits::Int, these boundaries are returned.

Parameters

  t | array of linear terms
  n | size of array
  c | constant
  l | lower bound
  u | upper bound

Definition at line 41 of file post.hpp.

## eliminate() [1/2]

void Gecode::Int::Linear::eliminate | ( | Term< BoolView > * | t,
|  | int & | n,
|  | long long int & | d )

inline

Eliminate assigned views.

Definition at line 43 of file bool-post.cpp.

## rewrite() [1/2]

void Gecode::Int::Linear::rewrite | ( | IntRelType & | r,
|  | long long int & | d )

inline

Rewrite non-strict relations.

Definition at line 55 of file bool-post.cpp.

## post_pos_unit() [1/3]

void Gecode::Int::Linear::post_pos_unit | ( | Home | home,
|  | Term< BoolView > * | t_p,
|  | int | n_p,
|  | IntRelType | irt,
|  | IntView | y,
|  | int | c )

inline

Definition at line 69 of file bool-post.cpp.

## post_pos_unit() [2/3]

void Gecode::Int::Linear::post_pos_unit | ( | Home | home,
|  | Term< BoolView > * | t_p,
|  | int | n_p,
|  | IntRelType | irt,
|  | ZeroIntView | ,
|  | int | c )

inline

Definition at line 115 of file bool-post.cpp.

## post_pos_unit() [3/3]

void Gecode::Int::Linear::post_pos_unit | ( | Home | home,
|  | Term< BoolView > * | t_p,
|  | int | n_p,
|  | IntRelType | irt,
|  | int | c,
|  | Reify | r,
|  | IntPropLevel | )

inline

Definition at line 156 of file bool-post.cpp.

## post_neg_unit() [1/3]

void Gecode::Int::Linear::post_neg_unit | ( | Home | home,
|  | Term< BoolView > * | t_n,
|  | int | n_n,
|  | IntRelType | irt,
|  | IntView | y,
|  | int | c )

inline

Definition at line 255 of file bool-post.cpp.

## post_neg_unit() [2/3]

void Gecode::Int::Linear::post_neg_unit | ( | Home | home,
|  | Term< BoolView > * | t_n,
|  | int | n_n,
|  | IntRelType | irt,
|  | ZeroIntView | ,
|  | int | c )

inline

Definition at line 303 of file bool-post.cpp.

## post_neg_unit() [3/3]

void Gecode::Int::Linear::post_neg_unit | ( | Home | home,
|  | Term< BoolView > * | t_n,
|  | int | n_n,
|  | IntRelType | irt,
|  | int | c,
|  | Reify | r,
|  | IntPropLevel | )

inline

Definition at line 344 of file bool-post.cpp.

## post_mixed() [1/2]

void Gecode::Int::Linear::post_mixed | ( | Home | home,
|  | Term< BoolView > * | t_p,
|  | int | n_p,
|  | Term< BoolView > * | t_n,
|  | int | n_n,
|  | IntRelType | irt,
|  | IntView | y,
|  | int | c )

inline

Definition at line 443 of file bool-post.cpp.

## post_mixed() [2/2]

void Gecode::Int::Linear::post_mixed | ( | Home | home,
|  | Term< BoolView > * | t_p,
|  | int | n_p,
|  | Term< BoolView > * | t_n,
|  | int | n_n,
|  | IntRelType | irt,
|  | ZeroIntView | y,
|  | int | c )

inline

Definition at line 488 of file bool-post.cpp.

## post_all()

template<class View>

void Gecode::Int::Linear::post_all | ( | Home | home,
|  | Term< BoolView > * | t,
|  | int | n,
|  | IntRelType | irt,
|  | View | x,
|  | int | c )

inline

All coefficients are 1

Definition at line 534 of file bool-post.cpp.

## isunit() [1/4]

template<class P, class N>

bool Gecode::Int::Linear::isunit | ( | ViewArray< P > & | ,
|  | ViewArray< N > & | )

inline

Test if only unit-coefficient arrays used.

Definition at line 44 of file int-nary.hpp.

## isunit() [2/4]

template<>

bool Gecode::Int::Linear::isunit | ( | ViewArray< IntView > & | ,
|  | ViewArray< IntView > & | )

inline

Definition at line 47 of file int-nary.hpp.

## isunit() [3/4]

template<>

bool Gecode::Int::Linear::isunit | ( | ViewArray< IntView > & | ,
|  | ViewArray< NoView > & | )

inline

Definition at line 50 of file int-nary.hpp.

## isunit() [4/4]

template<>

bool Gecode::Int::Linear::isunit | ( | ViewArray< NoView > & | ,
|  | ViewArray< IntView > & | )

inline

Definition at line 53 of file int-nary.hpp.

## bounds_p() [1/2]

template<class Val, class View>

void Gecode::Int::Linear::bounds_p | ( | ModEventDelta | med,
|  | ViewArray< View > & | x,
|  | Val & | c,
|  | Val & | sl,
|  | Val & | su )

related

Definition at line 140 of file int-nary.hpp.

## bounds_n() [1/2]

template<class Val, class View>

void Gecode::Int::Linear::bounds_n | ( | ModEventDelta | med,
|  | ViewArray< View > & | y,
|  | Val & | c,
|  | Val & | sl,
|  | Val & | su )

related

Definition at line 161 of file int-nary.hpp.

## prop_bnd()

template<class Val, class P, class N>

ExecStatus Gecode::Int::Linear::prop_bnd | ( | Space & | home,
|  | ModEventDelta | med,
|  | Propagator & | p,
|  | ViewArray< P > & | x,
|  | ViewArray< N > & | y,
|  | Val & | c )

Definition at line 183 of file int-nary.hpp.

## eqtobin() [1/4]

template<class Val, class P, class N>

Actor * Gecode::Int::Linear::eqtobin | ( | Space & | ,
|  | Propagator & | ,
|  | ViewArray< P > & | ,
|  | ViewArray< N > & | ,
|  | Val | )

inline

Rewriting of equality to binary propagators.

Definition at line 304 of file int-nary.hpp.

## eqtobin() [2/4]

template<class Val>

Actor * Gecode::Int::Linear::eqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< NoView > & | ,
|  | Val | c )

inline

Definition at line 309 of file int-nary.hpp.

## eqtobin() [3/4]

template<class Val>

Actor * Gecode::Int::Linear::eqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< NoView > & | ,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 317 of file int-nary.hpp.

## eqtobin() [4/4]

template<class Val>

Actor * Gecode::Int::Linear::eqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 325 of file int-nary.hpp.

## eqtoter() [1/4]

template<class Val, class P, class N>

Actor * Gecode::Int::Linear::eqtoter | ( | Space & | ,
|  | Propagator & | ,
|  | ViewArray< P > & | ,
|  | ViewArray< N > & | ,
|  | Val | )

inline

Rewriting of equality to ternary propagators.

Definition at line 343 of file int-nary.hpp.

## eqtoter() [2/4]

template<class Val>

Actor * Gecode::Int::Linear::eqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< NoView > & | ,
|  | Val | c )

inline

Definition at line 348 of file int-nary.hpp.

## eqtoter() [3/4]

template<class Val>

Actor * Gecode::Int::Linear::eqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< NoView > & | ,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 356 of file int-nary.hpp.

## eqtoter() [4/4]

template<class Val>

Actor * Gecode::Int::Linear::eqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 364 of file int-nary.hpp.

## nqtobin() [1/4]

template<class Val, class P, class N>

Actor * Gecode::Int::Linear::nqtobin | ( | Space & | ,
|  | Propagator & | ,
|  | ViewArray< P > & | ,
|  | ViewArray< N > & | ,
|  | Val | )

inline

Rewriting of disequality to binary propagators.

Definition at line 506 of file int-nary.hpp.

## nqtobin() [2/4]

template<class Val>

Actor * Gecode::Int::Linear::nqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< NoView > & | ,
|  | Val | c )

inline

Definition at line 511 of file int-nary.hpp.

## nqtobin() [3/4]

template<class Val>

Actor * Gecode::Int::Linear::nqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< NoView > & | ,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 519 of file int-nary.hpp.

## nqtobin() [4/4]

template<class Val>

Actor * Gecode::Int::Linear::nqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 527 of file int-nary.hpp.

## nqtoter() [1/4]

template<class Val, class P, class N>

Actor * Gecode::Int::Linear::nqtoter | ( | Space & | ,
|  | Propagator & | ,
|  | ViewArray< P > & | ,
|  | ViewArray< N > & | ,
|  | Val | )

inline

Rewriting of disequality to ternary propagators.

Definition at line 545 of file int-nary.hpp.

## nqtoter() [2/4]

template<class Val>

Actor * Gecode::Int::Linear::nqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< NoView > & | ,
|  | Val | c )

inline

Definition at line 550 of file int-nary.hpp.

## nqtoter() [3/4]

template<class Val>

Actor * Gecode::Int::Linear::nqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< NoView > & | ,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 558 of file int-nary.hpp.

## nqtoter() [4/4]

template<class Val>

Actor * Gecode::Int::Linear::nqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 566 of file int-nary.hpp.

## lqtobin() [1/4]

template<class Val, class P, class N>

Actor * Gecode::Int::Linear::lqtobin | ( | Space & | ,
|  | Propagator & | ,
|  | ViewArray< P > & | ,
|  | ViewArray< N > & | ,
|  | Val | )

inline

Rewriting of inequality to binary propagators.

Definition at line 655 of file int-nary.hpp.

## lqtobin() [2/4]

template<class Val>

Actor * Gecode::Int::Linear::lqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< NoView > & | ,
|  | Val | c )

inline

Definition at line 660 of file int-nary.hpp.

## lqtobin() [3/4]

template<class Val>

Actor * Gecode::Int::Linear::lqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< NoView > & | ,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 668 of file int-nary.hpp.

## lqtobin() [4/4]

template<class Val>

Actor * Gecode::Int::Linear::lqtobin | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 676 of file int-nary.hpp.

## lqtoter() [1/4]

template<class Val, class P, class N>

Actor * Gecode::Int::Linear::lqtoter | ( | Space & | ,
|  | Propagator & | ,
|  | ViewArray< P > & | ,
|  | ViewArray< N > & | ,
|  | Val | )

inline

Rewriting of inequality to ternary propagators.

Definition at line 694 of file int-nary.hpp.

## lqtoter() [2/4]

template<class Val>

Actor * Gecode::Int::Linear::lqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< NoView > & | ,
|  | Val | c )

inline

Definition at line 699 of file int-nary.hpp.

## lqtoter() [3/4]

template<class Val>

Actor * Gecode::Int::Linear::lqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< NoView > & | ,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 707 of file int-nary.hpp.

## lqtoter() [4/4]

template<class Val>

Actor * Gecode::Int::Linear::lqtoter | ( | Space & | home,
|  | Propagator & | p,
|  | ViewArray< IntView > & | x,
|  | ViewArray< IntView > & | y,
|  | Val | c )

inline

Definition at line 715 of file int-nary.hpp.

## eliminate() [2/2]

void Gecode::Int::Linear::eliminate | ( | Term< IntView > * | t,
|  | int & | n,
|  | long long int & | d )

inline

Eliminate assigned views.

Definition at line 44 of file int-post.cpp.

## rewrite() [2/2]

void Gecode::Int::Linear::rewrite | ( | IntRelType & | irt,
|  | long long int & | d,
|  | Term< IntView > *& | t_p,
|  | int & | n_p,
|  | Term< IntView > *& | t_n,
|  | int & | n_n )

inline

Rewrite all inequations in terms of IRT_LQ.

Definition at line 56 of file int-post.cpp.

## precision()

bool Gecode::Int::Linear::precision | ( | Term< IntView > * | t_p,
|  | int | n_p,
|  | Term< IntView > * | t_n,
|  | int | n_n,
|  | long long int | d )

inline

Decide the required precision and check for overflow.

Definition at line 79 of file int-post.cpp.

## post_nary() [1/2]

template<class Val, class View>

void Gecode::Int::Linear::post_nary | ( | Home | home,
|  | ViewArray< View > & | x,
|  | ViewArray< View > & | y,
|  | IntRelType | irt,
|  | Val | c )

inline

Posting n-ary propagators.

Definition at line 158 of file int-post.cpp.

## post_nary() [2/2]

template<class Val, class View>

void Gecode::Int::Linear::post_nary | ( | Home | home,
|  | ViewArray< View > & | x,
|  | ViewArray< View > & | y,
|  | IntRelType | irt,
|  | Val | c,
|  | Reify | r )

inline

Posting reified n-ary propagators.

Definition at line 416 of file int-post.cpp.

## posteqint()

template<class CtrlView>

void Gecode::Int::Linear::posteqint | ( | Home | home,
|  | IntView & | x,
|  | int | c,
|  | CtrlView | b,
|  | ReifyMode | rm,
|  | IntPropLevel | ipl )

inline

Definition at line 480 of file int-post.cpp.

## gcd()

int Gecode::Int::Linear::gcd | ( | int | a,
|  | int | b )

inline

Compute the greatest common divisor of a and b.

Definition at line 89 of file post.hpp.

## normalize()

template<class View>

bool Gecode::Int::Linear::normalize | ( | Term< View > * | t,
|  | int & | n,
|  | Term< View > *& | t_p,
|  | int & | n_p,
|  | Term< View > *& | t_n,
|  | int & | n_n,
|  | int & | g )

inline

Normalize linear integer constraints.

Parameters

  t | array of linear terms
  n | size of array
  t_p | array of linear terms over integers with positive coefficients
  n_p | number of postive terms
  t_n | array of linear terms over integers with negative coefficients
  n_n | number of negative terms
  gcd | greatest common divisor of all coefficients

Replaces all negative coefficients by positive coefficients.

- Variables occuring multiply in the term array are replaced by a single occurence: for example, becomes .
- If in the above simplification the value for (or for and ) exceeds the limits for integers as defined in Limits::Int, an exception of type Int::NumericalOverflow is thrown.
- Divides all coefficients by their greatest common divisor and returns the gcd g

Returns true, if all coefficients are unit coefficients

Definition at line 126 of file post.hpp.