Generated on Fri Oct 19 11:26:12 2018 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 &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of equality to binary propagators.
template<class Val >
Actoreqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actoreqtobin (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actoreqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actoreqtoter (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of equality to ternary propagators.
template<class Val >
Actoreqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actoreqtoter (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actoreqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actornqtobin (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of disequality to binary propagators.
template<class Val >
Actornqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actornqtobin (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actornqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actornqtoter (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of disequality to ternary propagators.
template<class Val >
Actornqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actornqtoter (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actornqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actorlqtobin (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of inequality to binary propagators.
template<class Val >
Actorlqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actorlqtobin (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actorlqtobin (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< IntView > &y, Val c)
template<class Val , class P , class N >
Actorlqtoter (Space &, Propagator &, ViewArray< P > &, ViewArray< N > &, Val)
 Rewriting of inequality to ternary propagators.
template<class Val >
Actorlqtoter (Space &home, Propagator &p, ViewArray< IntView > &x, ViewArray< NoView > &, Val c)
template<class Val >
Actorlqtoter (Space &home, Propagator &p, ViewArray< NoView > &, ViewArray< IntView > &y, Val c)
template<class Val >
Actorlqtoter (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.
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 171 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 128 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 43 of file bool-post.cpp.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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

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

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

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

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

Definition at line 53 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 140 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 161 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 183 of file int-nary.hpp.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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 78 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 115 of file post.hpp.