44 #ifdef GECODE_HAS_MPFR
49 namespace Gecode {
namespace Float {
52 typedef int mpfr_func(mpfr_t,
const __mpfr_struct*, mp_rnd_t);
58 mpfr_init_set_d(xx, x, GMP_RNDN);
66 #define GECODE_GENR_FUNC(name) \
67 FloatNum Rounding::name##_down(FloatNum x) { \
68 return invoke_mpfr(x, mpfr_##name, GMP_RNDD); \
70 FloatNum Rounding::name##_up(FloatNum x) { \
71 return invoke_mpfr(x, mpfr_##name, GMP_RNDU); \
88 #undef GECODE_GENR_FUNC
void log(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
double invoke_mpfr(FloatNum x, mpfr_func f, mp_rnd_t r)
Routine to call mpfr function with proper rounding.
FloatVal sinh(const FloatVal &x)
FloatVal cosh(const FloatVal &x)
void asin(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
void cos(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
Node * x
Pointer to corresponding Boolean expression node.
void tan(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
FloatVal acosh(const FloatVal &x)
FloatVal atanh(const FloatVal &x)
int mpfr_func(mpfr_t, const __mpfr_struct *, mp_rnd_t)
Type signatur of mpfr function.
FloatVal asinh(const FloatVal &x)
#define GECODE_GENR_FUNC(name)
Define mpfr functions with proper rounding.
Gecode toplevel namespace
void sin(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
void acos(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
void exp(Home home, FloatVar x0, FloatVar x1)
Post propagator for .
FloatVal tanh(const FloatVal &x)
double FloatNum
Floating point number base type.
void atan(Home home, FloatVar x0, FloatVar x1)
Post propagator for .