Generated on Mon Aug 25 11:35:51 2008 for Gecode by doxygen 1.5.6

Gecode::Int::Linear Namespace Reference


Detailed Description

Linear propagators


Classes

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  MemoryLinBoolInt
 Baseclass for integer Boolean sum using dependencies. More...
class  SpeedLinBoolInt
 Baseclass for integer Boolean sum using advisors. 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  LinBoolView
 Base-class for Boolean linear propagators. More...
class  ReLinBoolView
 Base-class for reified 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  ReEqBoolView
 Propagator for reified equality to Boolean sum (cardinality) More...
class  ReGqBoolView
 Propagator for reified 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 post_pos_unit (Space *home, Term< BoolView > *t_p, int n_p, IntRelType r, IntView y, int c, PropKind)
void post_pos_unit (Space *home, Term< BoolView > *t_p, int n_p, IntRelType r, ZeroIntView, int c, PropKind pk)
void post_neg_unit (Space *home, Term< BoolView > *t_n, int n_n, IntRelType r, IntView y, int c, PropKind)
void post_neg_unit (Space *home, Term< BoolView > *t_n, int n_n, IntRelType r, ZeroIntView, int c, PropKind pk)
void post_mixed (Space *home, Term< BoolView > *t_p, int n_p, Term< BoolView > *t_n, int n_n, IntRelType r, IntView y, int c)
void post_mixed (Space *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 (Space *home, Term< BoolView > *t, int n, IntRelType r, View x, int c, PropKind pk)
void post (Space *home, Term< BoolView > *t, int n, IntRelType r, IntView y, int c=0, IntConLevel=ICL_DEF, PropKind=PK_DEF)
 Post propagator for linear constraint over Booleans.
void post (Space *home, Term< BoolView > *t, int n, IntRelType r, int c, IntConLevel=ICL_DEF, PropKind=PK_DEF)
 Post propagator for linear constraint over Booleans.
void post (Space *home, Term< BoolView > *t, int n, IntRelType r, IntView y, BoolView b, IntConLevel=ICL_DEF, PropKind=PK_DEF)
 Post propagator for reified linear constraint over Booleans.
void post (Space *home, Term< BoolView > *t, int n, IntRelType r, int c, BoolView b, IntConLevel=ICL_DEF, PropKind=PK_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 (Space *home, ViewArray< View > &x, ViewArray< View > &y, IntRelType r, Val c)
 Posting n-ary propagators.
void post (Space *home, Term< IntView > *t, int n, IntRelType r, int c, IntConLevel=ICL_DEF, PropKind pk=PK_DEF)
 Post propagator for linear constraint over integers.
template<class Val, class View>
void post_nary (Space *home, ViewArray< View > &x, ViewArray< View > &y, IntRelType r, Val c, BoolView b)
 Posting reified n-ary propagators.
void post (Space *home, Term< IntView > *t, int n, IntRelType r, int c, BoolView b, IntConLevel=ICL_DEF, PropKind pk=PK_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.

Variables

const double double_max = 9007199254740991.0
 Largest double that can exactly be represented.
const double double_min = -9007199254740991.0
 Smallest double that can exactly be represented.


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 207 of file int-bin.icc.

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 161 of file int-ter.icc.


Function Documentation

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

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

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

Definition at line 90 of file bool-post.cc.

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

Definition at line 132 of file bool-post.cc.

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

Definition at line 181 of file bool-post.cc.

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

Definition at line 224 of file bool-post.cc.

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

Definition at line 273 of file bool-post.cc.

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

All coefficients are 1

Definition at line 319 of file bool-post.cc.

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.icc.

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

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

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

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

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

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

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 152 of file int-nary.icc.

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 173 of file int-nary.icc.

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 195 of file int-nary.icc.

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 316 of file int-nary.icc.

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 321 of file int-nary.icc.

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 329 of file int-nary.icc.

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 337 of file int-nary.icc.

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 355 of file int-nary.icc.

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 360 of file int-nary.icc.

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 368 of file int-nary.icc.

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 376 of file int-nary.icc.

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 558 of file int-nary.icc.

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 563 of file int-nary.icc.

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 571 of file int-nary.icc.

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 579 of file int-nary.icc.

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 597 of file int-nary.icc.

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 602 of file int-nary.icc.

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 610 of file int-nary.icc.

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 618 of file int-nary.icc.

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 730 of file int-nary.icc.

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 735 of file int-nary.icc.

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 743 of file int-nary.icc.

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 751 of file int-nary.icc.

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 769 of file int-nary.icc.

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 774 of file int-nary.icc.

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 782 of file int-nary.icc.

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 790 of file int-nary.icc.

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

Eliminate assigned views.

Definition at line 53 of file int-post.cc.

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 65 of file int-post.cc.

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 86 of file int-post.cc.

template<class Val, class View>
void Gecode::Int::Linear::post_nary ( Space *  home,
ViewArray< View > &  x,
ViewArray< View > &  y,
IntRelType  r,
Val  c 
) [inline]

Posting n-ary propagators.

Definition at line 137 of file int-post.cc.

template<class Val, class View>
void Gecode::Int::Linear::post_nary ( Space *  home,
ViewArray< View > &  x,
ViewArray< View > &  y,
IntRelType  r,
Val  c,
BoolView  b 
) [inline]

Posting reified n-ary propagators.

Definition at line 309 of file int-post.cc.

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

Definition at line 45 of file post.icc.

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

Definition at line 76 of file post.icc.


Variable Documentation

const double Gecode::Int::Linear::double_max = 9007199254740991.0

Largest double that can exactly be represented.

Definition at line 47 of file int-post.cc.

const double Gecode::Int::Linear::double_min = -9007199254740991.0

Smallest double that can exactly be represented.

Definition at line 49 of file int-post.cc.