Generated on Sat Aug 25 2012 03:33:07 for Gecode by doxygen 1.8.1.2
Gecode::Int::Arithmetic Namespace Reference

Numerical (arithmetic) propagators. More...

Classes

class  ValuesMapSqr
 Mapping integer to square. More...
class  ValuesMapSqrt
 Mapping integer to square root. More...
class  RangesMapSqr
 Mapping ranges to squares. More...
class  RangesMapSqrt
 Mapping integer to square root. More...
class  AbsBnd
 Bounds consistent absolute value propagator. More...
class  AbsDom
 Domain consistent absolute value propagator. More...
class  MaxBnd
 Bounds consistent ternary maximum propagator. More...
class  NaryMaxBnd
 Bounds consistent n-ary maximum propagator. More...
class  MaxDom
 Domain consistent ternary maximum propagator. More...
class  NaryMaxDom
 Domain consistent n-ary maximum propagator. More...
class  SqrPlusBnd
 Bounds consistent positive square propagator. More...
class  SqrBnd
 Bounds consistent square propagator. More...
class  SqrPlusDom
 Domain consistent positive square propagator. More...
class  SqrDom
 Domain consistent square propagator. More...
class  SqrtBnd
 Bounds consistent square root propagator. More...
class  SqrtDom
 Domain consistent square root propagator. More...
class  MultZeroOne
 Bounds or domain consistent propagator for $x_0\times x_1=x_0$. More...
class  MultPlusBnd
 Bounds consistent positive multiplication propagator. More...
class  MultBnd
 Bounds consistent multiplication propagator. More...
class  MultPlusDom
 Domain consistent positive multiplication propagator. More...
class  MultDom
 Domain consistent multiplication propagator. More...
class  DivPlusBnd
 Bounds consistent positive division propagator. More...
class  DivBnd
 Bounds consistent division propagator. More...
class  DivMod
 Integer division/modulo propagator. More...

Enumerations

enum  MaxPropStatus { MPS_ASSIGNED = 1<<0, MPS_REMOVED = 1<<1, MPS_NEW_BOUND = 1<<2 }
 Status of propagation for nary max. More...

Functions

template<class View , template< class View0, class View1 > class Eq>
ExecStatus prop_abs_bnd (Space &home, Propagator &p, View x0, View x1)
template<class View >
ExecStatus prop_max_bnd (Space &home, View x0, View x1, View x2)
template<class View >
ExecStatus prop_nary_max_bnd (Space &home, Propagator &p, ViewArray< View > &x, View y, PropCond pc)
template<class Val >
Val m (int x, int y)
 Multiply x and y as type Val.
template<class Val >
Val m (int x, double y)
 Multiply x and y as type Val.
template<>
double m (int x, int y)
 Multiply x and y as type Val.
template<>
double m (int x, double y)
 Multiply x and y as type Val.
template<class Val >
int c_d_p (int x, Val y)
 Compute $\lceil x/y\rceil$ where x and y are non-negative.
template<class Val >
int f_d_p (int x, Val y)
 Compute $\lfloor x/y\rfloor$ where x and y are non-negative.
template<>
int c_d_p< int > (int x, int y)
template<>
int c_d_p< double > (int x, double y)
template<>
int f_d_p< int > (int x, int y)
template<>
int f_d_p< double > (int x, double y)
int f_d (int x, int y)
 Compute $\lfloor x/y\rfloor$.
int c_d (int x, int y)
 Compute $\lceil x/y\rceil$.
template<class View >
bool pos (const View &x)
 Test whether x is postive.
template<class View >
bool neg (const View &x)
 Test whether x is negative.
template<class View >
bool any (const View &x)
 Test whether x is neither positive nor negative.
template<class Val , class VA , class VB , class VC >
ExecStatus prop_mult_plus_bnd (Space &home, Propagator &p, VA x0, VB x1, VC x2)
template<class Val , class View >
ExecStatus prop_mult_dom (Space &home, Propagator &p, View x0, View x1, View x2)
template<class VA , class VB >
ExecStatus prop_sqr_plus_bnd (Space &home, VA x0, VB x1)
template<class View >
ExecStatus prop_sqrt_bnd (Space &home, View x0, View x1)

Detailed Description

Numerical (arithmetic) propagators.

Enumeration Type Documentation

Status of propagation for nary max.

Enumerator:
MPS_ASSIGNED 

All views are assigned.

MPS_REMOVED 

A view is removed.

MPS_NEW_BOUND 

Telling has found a new upper bound.

Definition at line 179 of file max.hpp.

Function Documentation

template<class View , template< class View0, class View1 > class Eq>
ExecStatus Gecode::Int::Arithmetic::prop_abs_bnd ( Space &  home,
Propagator &  p,
View  x0,
View  x1 
)

Definition at line 46 of file abs.hpp.

template<class View >
ExecStatus Gecode::Int::Arithmetic::prop_max_bnd ( Space &  home,
View  x0,
View  x1,
View  x2 
)
inline

Definition at line 49 of file max.hpp.

template<class View >
ExecStatus Gecode::Int::Arithmetic::prop_nary_max_bnd ( Space &  home,
Propagator &  p,
ViewArray< View > &  x,
View  y,
PropCond  pc 
)
inline

Definition at line 187 of file max.hpp.

template<class Val >
Val Gecode::Int::Arithmetic::m ( int  x,
int  y 
)
inline

Multiply x and y as type Val.

Definition at line 60 of file mult.hpp.

template<class Val >
Val Gecode::Int::Arithmetic::m ( int  x,
double  y 
)
inline

Multiply x and y as type Val.

Definition at line 66 of file mult.hpp.

template<>
int Gecode::Int::Arithmetic::m ( int  x,
int  y 
)
inline

Multiply x and y as type Val.

Definition at line 60 of file mult.hpp.

template<>
double Gecode::Int::Arithmetic::m ( int  x,
double  y 
)
inline

Multiply x and y as type Val.

Definition at line 66 of file mult.hpp.

template<class Val >
int Gecode::Int::Arithmetic::c_d_p ( int  x,
Val  y 
)

Compute $\lceil x/y\rceil$ where x and y are non-negative.

template<class Val >
int Gecode::Int::Arithmetic::f_d_p ( int  x,
Val  y 
)

Compute $\lfloor x/y\rfloor$ where x and y are non-negative.

template<>
int Gecode::Int::Arithmetic::c_d_p< int > ( int  x,
int  y 
)
inline

Definition at line 85 of file mult.hpp.

template<>
int Gecode::Int::Arithmetic::c_d_p< double > ( int  x,
double  y 
)
inline

Definition at line 91 of file mult.hpp.

template<>
int Gecode::Int::Arithmetic::f_d_p< int > ( int  x,
int  y 
)
inline

Definition at line 97 of file mult.hpp.

template<>
int Gecode::Int::Arithmetic::f_d_p< double > ( int  x,
double  y 
)
inline

Definition at line 103 of file mult.hpp.

int Gecode::Int::Arithmetic::f_d ( int  x,
int  y 
)
inline

Compute $\lfloor x/y\rfloor$.

Definition at line 111 of file mult.hpp.

int Gecode::Int::Arithmetic::c_d ( int  x,
int  y 
)
inline

Compute $\lceil x/y\rceil$.

Definition at line 118 of file mult.hpp.

template<class View >
bool Gecode::Int::Arithmetic::pos ( const View &  x)
inline

Test whether x is postive.

Definition at line 126 of file mult.hpp.

template<class View >
bool Gecode::Int::Arithmetic::neg ( const View &  x)
inline

Test whether x is negative.

Definition at line 132 of file mult.hpp.

template<class View >
bool Gecode::Int::Arithmetic::any ( const View &  x)
inline

Test whether x is neither positive nor negative.

Definition at line 138 of file mult.hpp.

template<class Val , class VA , class VB , class VC >
ExecStatus Gecode::Int::Arithmetic::prop_mult_plus_bnd ( Space &  home,
Propagator &  p,
VA  x0,
VB  x1,
VC  x2 
)
inline

Definition at line 235 of file mult.hpp.

template<class Val , class View >
ExecStatus Gecode::Int::Arithmetic::prop_mult_dom ( Space &  home,
Propagator &  p,
View  x0,
View  x1,
View  x2 
)
inline

Definition at line 491 of file mult.hpp.

template<class VA , class VB >
ExecStatus Gecode::Int::Arithmetic::prop_sqr_plus_bnd ( Space &  home,
VA  x0,
VB  x1 
)
inline

Definition at line 48 of file sqr.hpp.

template<class View >
ExecStatus Gecode::Int::Arithmetic::prop_sqrt_bnd ( Space &  home,
View  x0,
View  x1 
)
inline

Definition at line 49 of file sqrt.hpp.