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

Gecode::Int::Arithmetic Namespace Reference


Detailed Description

Numerical (arithmetic) propagators.


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 Val, class VA, class VB, class VC, bool towardsMinInf>
ExecStatus prop_div_plus_bnd (Space *home, Propagator *p, VA x0, VB x1, VC x2)
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<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)


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 212 of file max.icc.


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 
) [inline]

Definition at line 46 of file abs.icc.

template<class Val, class VA, class VB, class VC, bool towardsMinInf>
ExecStatus Gecode::Int::Arithmetic::prop_div_plus_bnd ( Space *  home,
Propagator *  p,
VA  x0,
VB  x1,
VC  x2 
) [inline]

Definition at line 48 of file divmod.icc.

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

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 220 of file max.icc.

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

Multiply x and y as type Val.

Definition at line 60 of file mult.icc.

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

Multiply x and y as type Val.

Definition at line 66 of file mult.icc.

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

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 
) [inline]

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]

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

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

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

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

Compute $\lfloor x/y\rfloor$.

Definition at line 111 of file mult.icc.

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

Compute $\lceil x/y\rceil$.

Definition at line 118 of file mult.icc.

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

Test whether x is postive.

Definition at line 126 of file mult.icc.

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

Test whether x is negative.

Definition at line 132 of file mult.icc.

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

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 258 of file mult.icc.

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 562 of file mult.icc.

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

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

Definition at line 49 of file sqrt.icc.