8 #define REAL_LONG_DOUBLE 2
9 #define REAL_SINGLE_FAST2SUM 3
12 #error "REAL was not defined!"
15 #if REAL >= REAL_SINGLE_FAST2SUM
16 #include "real_fast2sum.h"
21 extern const char * g_real_name[];
23 #if REAL == REAL_SINGLE
25 #elif REAL == REAL_DOUBLE
27 #elif REAL == REAL_LONG_DOUBLE
28 typedef long double Real;
29 #elif REAL == REAL_SINGLE_FAST2SUM
30 typedef RealF2S<float> Real;
31 inline float Float(Real r) {return r.m_value;}
34 #error "Type of Real unspecified."
37 // Allow us to call Float on the primative types
38 // Useful so I can template some things that could be either (a more complicated) Real or a primitive type
39 // Mostly in the testers.
40 inline float Float(float f) {return f;}
41 inline double Float(double f) {return f;}
42 inline double Float(long double f) {return double(f);}