Generated on Tue Apr 18 10:23:52 2017 for Gecode by doxygen 1.6.3

Gecode::Int::Linear Namespace Reference

Linear propagators More...

Classes

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  TermLess
 Sort linear terms by view. More...
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 $a\cdot x$. 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

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)
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, int c, 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 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.
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 >
Actoreqtobin (Space &, bool, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of equality to binary propagators.
template<class Val >
Actoreqtobin (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actoreqtobin (Space &home, bool share, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actoreqtobin (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actoreqtoter (Space &, bool, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of equality to ternary propagators.
template<class Val >
Actoreqtoter (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actoreqtoter (Space &home, bool share, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actoreqtoter (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actornqtobin (Space &, bool, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of disequality to binary propagators.
template<class Val >
Actornqtobin (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actornqtobin (Space &home, bool share, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actornqtobin (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actornqtoter (Space &, bool, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of disequality to ternary propagators.
template<class Val >
Actornqtoter (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actornqtoter (Space &home, bool share, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actornqtoter (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actorlqtobin (Space &, bool, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of inequality to binary propagators.
template<class Val >
Actorlqtobin (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actorlqtobin (Space &home, bool share, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actorlqtobin (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actorlqtoter (Space &, bool, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of inequality to ternary propagators.
template<class Val >
Actorlqtoter (Space &home, bool share, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actorlqtoter (Space &home, bool share, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actorlqtoter (Space &home, bool share, 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.
void post (Home home, Term< IntView > *t, int n, IntRelType irt, int c, IntPropLevel=IPL_DEF)
 Post propagator for linear constraint over integers.
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)
void post (Home home, Term< IntView > *t, int n, IntRelType irt, int c, Reify r, IntPropLevel=IPL_DEF)
 Post reified propagator for linear constraint.
template<class View >
void estimate (Term< View > *t, int n, int c, int &l, int &u)
 Estimate lower and upper bounds.
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.

Detailed Description

Linear propagators


Enumeration Type Documentation

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 175 of file int-bin.hpp.

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 133 of file int-ter.hpp.


Function Documentation

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

Eliminate assigned views.

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

void Gecode::Int::Linear::rewrite ( IntRelType &  r,
long long int &  d 
) [inline]

Rewrite non-strict relations.

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

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 73 of file bool-post.cpp.

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 119 of file bool-post.cpp.

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 160 of file bool-post.cpp.

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 259 of file bool-post.cpp.

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 307 of file bool-post.cpp.

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 348 of file bool-post.cpp.

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 447 of file bool-post.cpp.

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 492 of file bool-post.cpp.

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 538 of file bool-post.cpp.

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 48 of file int-nary.hpp.

template<>
bool Gecode::Int::Linear::isunit ( ViewArray< IntView > &  ,
ViewArray< IntView > &   
) [inline]

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

template<>
bool Gecode::Int::Linear::isunit ( ViewArray< IntView > &  ,
ViewArray< NoView > &   
) [inline]

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

template<>
bool Gecode::Int::Linear::isunit ( ViewArray< NoView > &  ,
ViewArray< IntView > &   
) [inline]

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

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 144 of file int-nary.hpp.

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 165 of file int-nary.hpp.

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 
) [inline]

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

template<class Val , class P , class N >
Actor* Gecode::Int::Linear::eqtobin ( Space &  ,
bool  ,
Propagator &  ,
ViewArray< P > &  ,
ViewArray< N > &  ,
Val   
) [inline]

Rewriting of equality to binary propagators.

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

template<class Val >
Actor* Gecode::Int::Linear::eqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< NoView > &  ,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::eqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< NoView > &  ,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::eqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val , class P , class N >
Actor* Gecode::Int::Linear::eqtoter ( Space &  ,
bool  ,
Propagator &  ,
ViewArray< P > &  ,
ViewArray< N > &  ,
Val   
) [inline]

Rewriting of equality to ternary propagators.

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

template<class Val >
Actor* Gecode::Int::Linear::eqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< NoView > &  ,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::eqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< NoView > &  ,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::eqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val , class P , class N >
Actor* Gecode::Int::Linear::nqtobin ( Space &  ,
bool  ,
Propagator &  ,
ViewArray< P > &  ,
ViewArray< N > &  ,
Val   
) [inline]

Rewriting of disequality to binary propagators.

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

template<class Val >
Actor* Gecode::Int::Linear::nqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< NoView > &  ,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::nqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< NoView > &  ,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::nqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val , class P , class N >
Actor* Gecode::Int::Linear::nqtoter ( Space &  ,
bool  ,
Propagator &  ,
ViewArray< P > &  ,
ViewArray< N > &  ,
Val   
) [inline]

Rewriting of disequality to ternary propagators.

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

template<class Val >
Actor* Gecode::Int::Linear::nqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< NoView > &  ,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::nqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< NoView > &  ,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::nqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val , class P , class N >
Actor* Gecode::Int::Linear::lqtobin ( Space &  ,
bool  ,
Propagator &  ,
ViewArray< P > &  ,
ViewArray< N > &  ,
Val   
) [inline]

Rewriting of inequality to binary propagators.

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

template<class Val >
Actor* Gecode::Int::Linear::lqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< NoView > &  ,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::lqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< NoView > &  ,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::lqtobin ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val , class P , class N >
Actor* Gecode::Int::Linear::lqtoter ( Space &  ,
bool  ,
Propagator &  ,
ViewArray< P > &  ,
ViewArray< N > &  ,
Val   
) [inline]

Rewriting of inequality to ternary propagators.

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

template<class Val >
Actor* Gecode::Int::Linear::lqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< NoView > &  ,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::lqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< NoView > &  ,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

template<class Val >
Actor* Gecode::Int::Linear::lqtoter ( Space &  home,
bool  share,
Propagator &  p,
ViewArray< IntView > &  x,
ViewArray< IntView > &  y,
Val  c 
) [inline]

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

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

Eliminate assigned views.

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

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 60 of file int-post.cpp.

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 83 of file int-post.cpp.

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 162 of file int-post.cpp.

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 421 of file int-post.cpp.

template<class CtrlView >
void Gecode::Int::Linear::posteqint ( Home  home,
IntView &  x,
int  c,
CtrlView  b,
ReifyMode  rm,
IntPropLevel  ipl 
) [inline]

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

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 $\sum_{i=0}^{n-1}t_i + c$. 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
int Gecode::Int::Linear::gcd ( int  a,
int  b 
) [inline]

Compute the greatest common divisor of a and b.

Definition at line 82 of file post.hpp.

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, $ax+bx$ becomes $(a+b)x$.
  • If in the above simplification the value for $(a+b)$ (or for $a$ and $b$) 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 119 of file post.hpp.