Generated on Wed Nov 1 15:05:16 2006 for Gecode by doxygen 1.4.5

Gecode::Int::Arithmetic Namespace Reference


Detailed Description

Numerical (arithmetic) propagators.


Classes

class  AbsBnd
 Bounds-consistent absolute value propagator. More...
class  AbsDom
 Domain-consistent absolute value propagator. More...
class  Max
 Bounds-consistent ternary maximum propagator. More...
class  NaryMax
 Bounds-consistent n-ary maximum propagator. More...
class  SquarePlus
 Bounds-consistent positive square propagator. More...
class  Square
 Bounds-consistent square propagator. More...
class  MultPlus
 Bounds-consistent positive multiplication propagator. More...
class  Mult
 Bounds-consistent multiplication 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_bnd (Space *home, View x0, View x1)
double m (int a, int b)
 Multiply a and b as double.
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 p (const View &x)
 Test whether x is postive.
template<class View>
bool n (const View &x)
 Test whether x is negative.
template<class View>
bool x (const View &x)
 Test whether x is neither positive nor negative.
template<class View>
ExecStatus prop_bnd (Space *home, ViewArray< View > &)
 Perform bounds-consistent absolute value propagation.


Enumeration Type Documentation

enum Gecode::Int::Arithmetic::MaxPropStatus
 

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


Function Documentation

template<class View, template< class View0, class View1 > class Eq>
ExecStatus Gecode::Int::Arithmetic::prop_bnd Space *  home,
View  x0,
View  x1
 

Definition at line 31 of file abs.icc.

double Gecode::Int::Arithmetic::m int  a,
int  b
[inline]
 

Multiply a and b as double.

Definition at line 33 of file mult.icc.

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

Compute $\lfloor x/y\rfloor$.

Definition at line 39 of file mult.icc.

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

Compute $\lceil x/y\rceil$.

Definition at line 46 of file mult.icc.

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

Test whether x is postive.

Definition at line 54 of file mult.icc.

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

Test whether x is negative.

Definition at line 60 of file mult.icc.

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

Test whether x is neither positive nor negative.

Definition at line 66 of file mult.icc.

template<class View>
ExecStatus Gecode::Int::Arithmetic::prop_bnd Space *  home,
ViewArray< View > & 
 

Perform bounds-consistent absolute value propagation.

This is actually the propagation algorithm for AbsBnd. It is available as separate function as it is reused for domain-consistent distinct propagators.