Generated on Thu Mar 22 10:39:55 2012 for Gecode by doxygen 1.6.3

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

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 48 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 186 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 71 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 65 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 71 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 65 of file mult.hpp.

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 110 of file mult.hpp.

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

Compute $\lceil x/y\rceil$.

Definition at line 117 of file mult.hpp.

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

Test whether x is postive.

Definition at line 125 of file mult.hpp.

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

Test whether x is negative.

Definition at line 131 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 137 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 234 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 490 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.