packages feed

rounding-0.3.0: rounding-inc.h

/* This is an X-Macro designed to be included
   with various definitions for UNARY_T, BINARY_T and INFIX_T
*/
#ifdef UNARY_T

#define UNARY(fun) \
    UNARY_T(double, m ## fun, fun) \
    UNARY_T(float , m ## fun ## f, fun) \
    UNARY_T(long double , m ## fun ## l, fun)

#define BINARY(fun) \
    BINARY_T(double, m ## fun, fun) \
    BINARY_T(float , m ## fun ## f, fun) \
    BINARY_T(long double , m ## fun ## l, fun)

#define INFIX(fun, op) \
    INFIX_T(double, m ## fun, op) \
    INFIX_T(float , m ## fun ## f, op) \
    INFIX_T(long double , m ## fun ## l, op)

UNARY(fabs)
UNARY(exp)
UNARY(expm1)
BINARY(pow)
// UNARY(exp2)
UNARY(log)
UNARY(log1p)
UNARY(sqrt)
UNARY(cbrt)
BINARY(hypot)
UNARY(sin)
UNARY(cos)
UNARY(tan)
UNARY(asin)
UNARY(acos)
UNARY(atan)
UNARY(sinh)
UNARY(cosh)
UNARY(tanh)
UNARY(asinh)
UNARY(acosh)
UNARY(atanh)
UNARY(ceil)
UNARY(floor)
UNARY(round)
UNARY(trunc)
BINARY(fmod)
BINARY(atan2)
UNARY(erf)

INFIX(add, (x + y))
INFIX(times, (x * y))
INFIX(div, (x / y))
INFIX(minus, (x - y))

#undef UNARY
#undef BINARY
#undef INFIX

#endif