Generated on Thu Jan 16 2025 00:00:00 for Gecode by doxygen 1.14.0
Gecode::Int::Arithmetic Namespace Reference

Numerical (arithmetic) propagators. More...

Classes

class  AbsBnd
 Bounds consistent absolute value propagator. More...
class  AbsDom
 Domain consistent absolute value propagator. More...
class  ArgMax
 Argument maximum propagator. More...
class  DivBnd
 Bounds consistent division propagator. More...
class  DivMod
 Integer division/modulo propagator. More...
class  DivPlusBnd
 Bounds consistent positive division propagator. More...
class  MaxBnd
 Bounds consistent ternary maximum propagator. More...
class  MaxDom
 Domain consistent ternary maximum propagator. More...
class  MultBnd
 Bounds consistent multiplication propagator. More...
class  MultDom
 Domain consistent multiplication propagator. More...
class  MultPlusBnd
 Bounds consistent positive multiplication propagator. More...
class  MultPlusDom
 Domain consistent positive multiplication propagator. More...
class  MultZeroOne
 Bounds or domain consistent propagator for $x_0\times x_1=x_0$. More...
class  NaryMaxBnd
 Bounds consistent n-ary maximum propagator. More...
class  NaryMaxDom
 Domain consistent n-ary maximum propagator. More...
class  NrootBnd
 Bounds consistent n-th root propagator. More...
class  NrootDom
 Domain consistent n-th root propagator. More...
class  NrootPlusBnd
 Positive bounds consistent n-th root propagator. More...
class  NrootPlusDom
 Domain consistent n-th root propagator. More...
class  PowBnd
 Bounds consistent power propagator. More...
class  PowDom
 Domain consistent power propagator. More...
class  PowOps
 Operations for power and nroot propagators. More...
class  PowPlusBnd
 Bounds consistent positive power propagator. More...
class  PowPlusDom
 Domain consistent positive power propagator. More...
class  RangesMapNroot
 Mapping integer to n-th root. More...
class  RangesMapPow
 Mapping ranges to powers. More...
class  SqrOps
 Operations for square and square-root propagators. More...
class  ValuesMapNroot
 Mapping integer (must be an n-th power) to n-th root. More...
class  ValuesMapNrootSigned
 Mapping integer (must be an n-th power) to n-th root (signed) More...
class  ValuesMapPow
 Mapping integer to power. 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)
long long int mll (long long int x, long long int y)
 Multiply x and \y.
long long int ll (int x)
 Cast x into a long long int.
long long int ill (int x)
 Increment x by one.
long long int dll (int x)
 Decrement x by one.
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 VA, class VB, class VC>
ExecStatus prop_mult_plus_bnd (Space &home, Propagator &p, VA x0, VB x1, VC x2)
template<class View>
ExecStatus prop_mult_dom (Space &home, Propagator &p, View x0, View x1, View x2)
template<class Ops, bool minus>
ExecStatus prop_nroot_plus_bnd (Space &home, IntView x0, IntView x1, const Ops &ops)
template<class Ops>
ExecStatus prop_nroot_bnd (Space &home, IntView x0, IntView x1, const Ops &ops)
template<class VA, class VB, class Ops>
ExecStatus prop_pow_plus_bnd (Space &home, VA x0, VB x1, const Ops &ops)
template<class Ops>
ExecStatus prop_pow_bnd (Space &home, IntView x0, IntView x1, const Ops &ops)

Detailed Description

Numerical (arithmetic) propagators.

Enumeration Type Documentation

◆ 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 175 of file max.hpp.

Function Documentation

◆ prop_abs_bnd()

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 42 of file abs.hpp.

◆ prop_max_bnd()

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

Definition at line 45 of file max.hpp.

◆ prop_nary_max_bnd()

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 183 of file max.hpp.

◆ mll()

long long int Gecode::Int::Arithmetic::mll ( long long int x,
long long int y )
inline

Multiply x and \y.

Definition at line 48 of file mult.hpp.

◆ ll()

long long int Gecode::Int::Arithmetic::ll ( int x)
inline

Cast x into a long long int.

Definition at line 53 of file mult.hpp.

◆ ill()

long long int Gecode::Int::Arithmetic::ill ( int x)
inline

Increment x by one.

Definition at line 58 of file mult.hpp.

◆ dll()

long long int Gecode::Int::Arithmetic::dll ( int x)
inline

Decrement x by one.

Definition at line 63 of file mult.hpp.

◆ pos()

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

Test whether x is postive.

Definition at line 70 of file mult.hpp.

◆ neg()

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

Test whether x is negative.

Definition at line 76 of file mult.hpp.

◆ any()

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

Test whether x is neither positive nor negative.

Definition at line 82 of file mult.hpp.

◆ prop_mult_plus_bnd()

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

◆ prop_mult_dom()

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

Definition at line 272 of file mult.hpp.

◆ prop_nroot_plus_bnd()

template<class Ops, bool minus>
ExecStatus Gecode::Int::Arithmetic::prop_nroot_plus_bnd ( Space & home,
IntView x0,
IntView x1,
const Ops & ops )
inline

Definition at line 48 of file nroot.hpp.

◆ prop_nroot_bnd()

template<class Ops>
ExecStatus Gecode::Int::Arithmetic::prop_nroot_bnd ( Space & home,
IntView x0,
IntView x1,
const Ops & ops )
inline

Definition at line 152 of file nroot.hpp.

◆ prop_pow_plus_bnd()

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

Definition at line 47 of file pow.hpp.

◆ prop_pow_bnd()

template<class Ops>
ExecStatus Gecode::Int::Arithmetic::prop_pow_bnd ( Space & home,
IntView x0,
IntView x1,
const Ops & ops )
inline

Definition at line 122 of file pow.hpp.