Generated on Thu Mar 22 10:39:57 2012 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

IntRelType inverse (const IntRelType r)
 Inverse the relation.
void eliminate (Term< BoolView > *t, int &n, double &d)
 Eliminate assigned views.
void rewrite (IntRelType &r, double &d)
 Rewrite non-strict relations.
void post_pos_unit (Home home, Term< BoolView > *t_p, int n_p, IntRelType r, IntView y, int c)
void post_pos_unit (Home home, Term< BoolView > *t_p, int n_p, IntRelType r, ZeroIntView, int c)
void post_pos_unit (Home home, Term< BoolView > *t_p, int n_p, IntRelType r, int c, BoolView b, IntConLevel)
void post_neg_unit (Home home, Term< BoolView > *t_n, int n_n, IntRelType r, IntView y, int c)
void post_neg_unit (Home home, Term< BoolView > *t_n, int n_n, IntRelType r, ZeroIntView, int c)
void post_neg_unit (Home home, Term< BoolView > *t_n, int n_n, IntRelType r, int c, BoolView b, IntConLevel)
void post_mixed (Home home, Term< BoolView > *t_p, int n_p, Term< BoolView > *t_n, int n_n, IntRelType r, IntView y, int c)
void post_mixed (Home home, Term< BoolView > *t_p, int n_p, Term< BoolView > *t_n, int n_n, IntRelType r, ZeroIntView y, int c)
template<class View >
void post_all (Home home, Term< BoolView > *t, int n, IntRelType r, View x, int c)
void post (Home home, Term< BoolView > *t, int n, IntRelType r, IntView y, int c=0, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over Booleans.
void post (Home home, Term< BoolView > *t, int n, IntRelType r, int c, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over Booleans.
void post (Home home, Term< BoolView > *t, int n, IntRelType r, IntView y, BoolView b, IntConLevel=ICL_DEF)
 Post propagator for reified linear constraint over Booleans.
void post (Home home, Term< BoolView > *t, int n, IntRelType r, int c, BoolView b, IntConLevel=ICL_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, double &d)
 Eliminate assigned views.
void rewrite (IntRelType &r, double &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, double 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 r, Val c)
 Posting n-ary propagators.
void post (Home home, Term< IntView > *t, int n, IntRelType r, int c, IntConLevel=ICL_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 r, Val c, BoolView b)
 Posting reified n-ary propagators.
void post (Home home, Term< IntView > *t, int n, IntRelType r, int c, BoolView b, IntConLevel=ICL_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.
template<class View >
bool normalize (Term< View > *t, int &n, Term< View > *&t_p, int &n_p, Term< View > *&t_n, int &n_n)
 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 160 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 125 of file int-ter.hpp.


Function Documentation

IntRelType Gecode::Int::Linear::inverse ( const IntRelType  r  )  [inline]

Inverse the relation.

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

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

Eliminate assigned views.

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

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

Rewrite non-strict relations.

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

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

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

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

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

void Gecode::Int::Linear::post_pos_unit ( Home  home,
Term< BoolView > *  t_p,
int  n_p,
IntRelType  r,
int  c,
BoolView  b,
IntConLevel   
)

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

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

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

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

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

void Gecode::Int::Linear::post_neg_unit ( Home  home,
Term< BoolView > *  t_n,
int  n_n,
IntRelType  r,
int  c,
BoolView  b,
IntConLevel   
)

Definition at line 307 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  r,
IntView  y,
int  c 
)

Definition at line 350 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  r,
ZeroIntView  y,
int  c 
)

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

template<class View >
void Gecode::Int::Linear::post_all ( Home  home,
Term< BoolView > *  t,
int  n,
IntRelType  r,
View  x,
int  c 
) [inline]

All coefficients are 1

Definition at line 445 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 129 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 150 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 172 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 293 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 298 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 306 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 314 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 332 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 337 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 345 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 353 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 487 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 492 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 500 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 508 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 526 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 531 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 539 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 547 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 636 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 641 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 649 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 657 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 675 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 680 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 688 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 696 of file int-nary.hpp.

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

Eliminate assigned views.

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

void Gecode::Int::Linear::rewrite ( IntRelType &  r,
double &  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,
double  d 
) [inline]

Decide the required precision and check for overflow.

Definition at line 81 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  r,
Val  c 
) [inline]

Posting n-ary propagators.

Definition at line 142 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  r,
Val  c,
BoolView  b 
) [inline]

Posting reified n-ary propagators.

Definition at line 375 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
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 
) [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

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.

Returns true, if all coefficients are unit coefficients