rounding-0.1.1: rounding.c
#include "rounding.h"
#define UNARY_T(t,f,g) \
t f (int mode, t x) { \
fesetround(mode); \
t result = g(x); \
fesetround(FE_DEFAULT); \
return result; \
}
#define BINARY_T(t,f,g) \
t f (int mode, t x, t y) { \
fesetround(mode); \
t result = g(x, y); \
fesetround(FE_DEFAULT); \
return result; \
}
#define INFIX_T(t,f,op) \
t f (int mode, t x, t y) { \
fesetround(mode); \
t result = (op); \
fesetround(FE_DEFAULT); \
return result; \
}
#include "rounding-inc.h"
const float pi_f_l = 13176794.0f/(1<<22);
const float pi_f_u = 13176795.0f/(1<<22);
const double pi_d_l = (3373259426.0 + 273688.0 / (1<<21)) / (1<<30);
const double pi_d_u = (3373259426.0 + 273689.0 / (1<<21)) / (1<<30);