Generated on Sat Feb 7 2015 02:01:48 for Gecode by doxygen 1.8.9.1
Gecode::Int::Linear Namespace Reference

Linear propagators More...

Classes

class  BoolNegTraits
 Traits for Boolean negation view. More...
 
class  BoolNegTraits< BoolView >
 Traits for Boolean negation view. More...
 
class  BoolNegTraits< NegBoolView >
 Traits for Boolean negation view. More...
 
class  DomEq
 Propagator for domain consistent n-ary linear equality More...
 
class  EmptyScaleBoolArray
 Empty array of scale Boolean views. More...
 
class  Eq
 Propagator for bounds consistent n-ary linear equality More...
 
class  EqBin
 Propagator for bounds consistent binary linear equality More...
 
class  EqBoolInt
 Propagator for integer equal to Boolean sum (cardinality) More...
 
class  EqBoolScale
 Propagator for equality to Boolean sum with coefficients More...
 
class  EqBoolView
 Propagator for equality to Boolean sum (cardinality) More...
 
class  EqTer
 Propagator for bounds consistent ternary linear equality More...
 
class  GqBin
 Propagator for bounds consistent binary linear greater or equal More...
 
class  GqBoolInt
 Propagator for integer less or equal to Boolean sum (cardinality) More...
 
class  GqBoolView
 Propagator for greater or equal to Boolean sum (cardinality) More...
 
class  Lin
 Base-class for n-ary linear propagators. More...
 
class  LinBin
 Base-class for binary linear propagators. More...
 
class  LinBoolInt
 Baseclass for integer Boolean sum. More...
 
class  LinBoolScale
 Base class for linear Boolean constraints with coefficients. More...
 
class  LinBoolView
 Base-class for Boolean linear propagators. More...
 
class  LinTer
 Base-class for ternary linear propagators. More...
 
class  Lq
 Propagator for bounds consistent n-ary linear less or equal More...
 
class  LqBin
 Propagator for bounds consistent binary linear less or equal More...
 
class  LqBoolScale
 Propagator for inequality to Boolean sum with coefficients More...
 
class  LqTer
 Propagator for bounds consistent ternary linear less or equal More...
 
class  NegSupportIter
 Support-based iterator for negative view. More...
 
class  NoView
 No view serves as filler for empty view arrays. More...
 
class  Nq
 Propagator for bounds consistent n-ary linear disequality More...
 
class  NqBin
 Propagator for bounds consistent binary linear disequality More...
 
class  NqBoolInt
 Propagator for integer disequal to Boolean sum (cardinality) More...
 
class  NqBoolScale
 Propagator for disequality to Boolean sum with coefficients More...
 
class  NqBoolView
 Propagator for disequality to Boolean sum (cardinality) More...
 
class  NqTer
 Propagator for bounds consistent ternary linear disquality More...
 
class  PosSupportIter
 Support-based iterator for positive view. More...
 
class  ReEq
 Propagator for reified bounds consistent n-ary linear equality More...
 
class  ReEqBin
 Propagator for reified bounds consistent binary linear equality More...
 
class  ReEqBoolInt
 Propagator for reified integer equal to Boolean sum (cardinality) More...
 
class  ReGqBoolInt
 Propagator for reified integer less or equal to Boolean sum (cardinality) More...
 
class  ReLin
 Base-class for reified n-ary linear propagators. More...
 
class  ReLinBin
 Base-class for reified binary linear propagators. More...
 
class  ReLinBoolInt
 Baseclass for reified integer Boolean sum. More...
 
class  ReLq
 Propagator for reified bounds consistent n-ary linear less or equal More...
 
class  ReLqBin
 Propagator for reified bounds consistent binary linear less or equal More...
 
class  ScaleBool
 Coefficient and Boolean view. More...
 
class  ScaleBoolArray
 Array of scale Boolean views. More...
 
class  SupportIter
 Base-class for support-based iterator. More...
 
class  SupportSet
 Set for support information More...
 
class  Term
 Class for describing linear term $a\cdot x$. More...
 
class  TermLess
 Sort linear terms by view. 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 irt)
 Inverse the relation. More...
 
void eliminate (Term< BoolView > *t, int &n, long long int &d)
 Eliminate assigned views. More...
 
void rewrite (IntRelType &r, long long int &d)
 Rewrite non-strict relations. More...
 
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, IntConLevel)
 
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, IntConLevel)
 
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, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over Booleans. More...
 
void post (Home home, Term< BoolView > *t, int n, IntRelType irt, int c, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over Booleans. More...
 
void post (Home home, Term< BoolView > *t, int n, IntRelType irt, IntView y, Reify r, IntConLevel=ICL_DEF)
 Post propagator for reified linear constraint over Booleans. More...
 
void post (Home home, Term< BoolView > *t, int n, IntRelType irt, int c, Reify r, IntConLevel=ICL_DEF)
 Post propagator for reified linear constraint over Booleans. More...
 
template<class P , class N >
bool isunit (ViewArray< P > &, ViewArray< N > &)
 Test if only unit-coefficient arrays used. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
template<class Val , class View >
void post_nary (Home home, ViewArray< View > &x, ViewArray< View > &y, IntRelType irt, Val c)
 Posting n-ary propagators. More...
 
void post (Home home, Term< IntView > *t, int n, IntRelType irt, int c, IntConLevel=ICL_DEF)
 Post propagator for linear constraint over integers. More...
 
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. More...
 
template<class CtrlView >
void posteqint (Home home, IntView &x, int c, CtrlView b, ReifyMode rm, IntConLevel icl)
 
void post (Home home, Term< IntView > *t, int n, IntRelType irt, int c, Reify r, IntConLevel=ICL_DEF)
 Post reified propagator for linear constraint. More...
 
template<class View >
void estimate (Term< View > *t, int n, int c, int &l, int &u)
 Estimate lower and upper bounds. More...
 
int gcd (int a, int b)
 Compute the greatest common divisor of a and b. More...
 
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. More...
 

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  irt)
inline

Inverse the relation.

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

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

Eliminate assigned views.

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

void Gecode::Int::Linear::rewrite ( IntRelType r,
long long int &  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  irt,
IntView  y,
int  c 
)
inline

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  irt,
ZeroIntView  ,
int  c 
)
inline

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  irt,
int  c,
Reify  r,
IntConLevel   
)
inline

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  irt,
IntView  y,
int  c 
)
inline

Definition at line 274 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 322 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,
IntConLevel   
)
inline

Definition at line 363 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 462 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 507 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 553 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 
)

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 496 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 501 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 509 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 517 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 535 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 540 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 548 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 556 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 645 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 650 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 658 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 666 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 684 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 689 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 697 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 705 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 418 of file int-post.cpp.

template<class CtrlView >
void Gecode::Int::Linear::posteqint ( Home  home,
IntView x,
int  c,
CtrlView  b,
ReifyMode  rm,
IntConLevel  icl 
)
inline

Definition at line 482 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
tarray of linear terms
nsize of array
cconstant
llower bound
uupper bound

Definition at line 45 of file post.hpp.

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
tarray of linear terms
nsize of array
t_parray of linear terms over integers with positive coefficients
n_pnumber of postive terms
t_narray of linear terms over integers with negative coefficients
n_nnumber of negative terms
gcdgreatest 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.