1 /* Some constant values -- */ 2 3 #include "mconf.h" 4 /* Many of these values should ideally come from <float.h> or 5 <values.h>, which should be included in mconf.h if required */ 6 7 #ifdef DBL_EPSILON 8 double MACHEP = DBL_EPSILON; 9 #else 10 double MACHEP = 1.11022302462515654042E-16; /* 2**-53 */ 11 #endif 12 13 #if defined DBL_MIN 14 double UFLOWTHRESH = DBL_MIN; 15 #elif defined MINDOUBLE 16 double UFLOWTHRESH = MINDOUBLE; 17 #else 18 double UFLOWTHRESH = 2.22507385850720138309E-308; /* 2**-1022 */ 19 #endif 20 21 #ifdef DBL_MAX_10_EXP 22 double MAXLOG = DBL_MAX_10_EXP; 23 #else 24 double MAXLOG = 7.08396418532264106224E2; /* log 2**1022 */ 25 #endif 26 27 #ifdef DBL_MIN_10_EXP 28 double MINLOG = DBL_MIN_10_EXP; 29 #else 30 double MINLOG = -7.08396418532264106224E2; /* log 2**-1022 */ 31 #endif 32 33 #if defined MAXDOUBLE 34 double MAXNUM = MAXDOUBLE; 35 #elif defined DBL_MAX 36 double MAXNUM = DBL_MAX; 37 #else 38 double MAXNUM = 1.79769313486231570815E308; /* 2**1024*(1-MACHEP) */ 39 #endif 40 41 #ifdef M_PI 42 #ifndef PI 43 double PI = M_PI; 44 #endif 45 double PIO2 = M_PI/2; 46 double PIO4 = M_PI/4; 47 double THPIO4 = 0.75*M_PI; 48 double TWOOPI = 2/M_PI; 49 #else 50 #ifndef PI 51 double PI = 3.14159265358979323846; /* pi */ 52 #endif 53 double PIO2 = 1.57079632679489661923; /* pi/2 */ 54 double PIO4 = 7.85398163397448309616E-1; /* pi/4 */ 55 double THPIO4 = 2.35619449019234492885; /* 3*pi/4 */ 56 double TWOOPI = 6.36619772367581343075535E-1; /* 2/pi */ 57 #endif 58 59 #ifdef M_SQRT2 60 double SQRT2 = M_SQRT2; /* sqrt(2) */ 61 double SQRTH = M_SQRT2/2; /* sqrt(2)/2 */ 62 #else 63 double SQRT2 = 1.41421356237309504880; /* sqrt(2) */ 64 double SQRTH = 7.07106781186547524401E-1; /* sqrt(2)/2 */ 65 #endif 66 67 double SQ2OPI = 7.9788456080286535587989E-1; /* sqrt( 2/pi ) */ 68 69 #ifdef M_LN2 70 double LOGE2 = M_LN2; 71 double LOGSQ2 = M_LN2/2; /* log(2)/2 */ 72 double LOG2E = 1/M_LN2; /* 1/log(2) */ 73 #else 74 double LOGE2 = 6.93147180559945309417E-1; /* log(2) */ 75 double LOGSQ2 = 3.46573590279972654709E-1; /* log(2)/2 */ 76 double LOG2E = 1.4426950408889634073599; /* 1/log(2) */ 77 #endif 78 79 80 81