34 namespace Gecode {
namespace Float {
45 return RoundingBase::median(
x,
y);
48 #define GECODE_ROUND_OP(name) \
49 forceinline FloatNum \
50 Rounding::name##_down(FloatNum x, FloatNum y) { \
51 return RoundingBase::name##_down(x,y); \
53 forceinline FloatNum \
54 Rounding::name##_up(FloatNum x, FloatNum y) { \
55 return RoundingBase::name##_up(x,y); \
63 #undef GECODE_ROUND_OP
65 #define GECODE_ROUND_FUN(name) \
66 forceinline FloatNum \
67 Rounding::name##_down(FloatNum x) { \
68 return RoundingBase::name##_down(x); \
70 forceinline FloatNum \
71 Rounding::name##_up(FloatNum x) { \
72 return RoundingBase::name##_up(x); \
77 #if defined(_M_X64) || defined(_M_IA64)
95 #undef GECODE_ROUND_FUN
Node * x
Pointer to corresponding Boolean expression node.
~Rounding(void)
Destructor (restores previous rounding mode)
FloatNum int_up(FloatNum x)
Return next upward-rounded integer of x (domain: )
FloatNum int_down(FloatNum x)
Return next downward-rounded integer of x (domain: )
FloatNum median(FloatNum x, FloatNum y)
Return median of x and y (domain: )
Rounding(void)
Default constructor (configures full rounding mode)
Post propagator for SetVar SetOpType SetVar y
double FloatNum
Floating point number base type.
#define GECODE_ROUND_FUN(name)
#define GECODE_ROUND_OP(name)