1*80ee5cbfSDavid du Colombier #ifndef __FLOAT 2*80ee5cbfSDavid du Colombier #define __FLOAT 3*80ee5cbfSDavid du Colombier /* IEEE, default rounding */ 4*80ee5cbfSDavid du Colombier 5*80ee5cbfSDavid du Colombier #define FLT_ROUNDS 1 6*80ee5cbfSDavid du Colombier #define FLT_RADIX 2 7*80ee5cbfSDavid du Colombier 8*80ee5cbfSDavid du Colombier #define FLT_DIG 6 9*80ee5cbfSDavid du Colombier #define FLT_EPSILON 1.19209290e-07 10*80ee5cbfSDavid du Colombier #define FLT_MANT_DIG 24 11*80ee5cbfSDavid du Colombier #define FLT_MAX 3.40282347e+38 12*80ee5cbfSDavid du Colombier #define FLT_MAX_10_EXP 38 13*80ee5cbfSDavid du Colombier #define FLT_MAX_EXP 128 14*80ee5cbfSDavid du Colombier #define FLT_MIN 1.17549435e-38 15*80ee5cbfSDavid du Colombier #define FLT_MIN_10_EXP -37 16*80ee5cbfSDavid du Colombier #define FLT_MIN_EXP -125 17*80ee5cbfSDavid du Colombier 18*80ee5cbfSDavid du Colombier #define DBL_DIG 15 19*80ee5cbfSDavid du Colombier #define DBL_EPSILON 2.2204460492503131e-16 20*80ee5cbfSDavid du Colombier #define DBL_MANT_DIG 53 21*80ee5cbfSDavid du Colombier #define DBL_MAX 1.797693134862315708145e+308 22*80ee5cbfSDavid du Colombier #define DBL_MAX_10_EXP 308 23*80ee5cbfSDavid du Colombier #define DBL_MAX_EXP 1024 24*80ee5cbfSDavid du Colombier #define DBL_MIN 2.225073858507201383090233e-308 25*80ee5cbfSDavid du Colombier #define DBL_MIN_10_EXP -307 26*80ee5cbfSDavid du Colombier #define DBL_MIN_EXP -1021 27*80ee5cbfSDavid du Colombier #define LDBL_MANT_DIG DBL_MANT_DIG 28*80ee5cbfSDavid du Colombier #define LDBL_EPSILON DBL_EPSILON 29*80ee5cbfSDavid du Colombier #define LDBL_DIG DBL_DIG 30*80ee5cbfSDavid du Colombier #define LDBL_MIN_EXP DBL_MIN_EXP 31*80ee5cbfSDavid du Colombier #define LDBL_MIN DBL_MIN 32*80ee5cbfSDavid du Colombier #define LDBL_MIN_10_EXP DBL_MIN_10_EXP 33*80ee5cbfSDavid du Colombier #define LDBL_MAX_EXP DBL_MAX_EXP 34*80ee5cbfSDavid du Colombier #define LDBL_MAX DBL_MAX 35*80ee5cbfSDavid du Colombier #define LDBL_MAX_10_EXP DBL_MAX_10_EXP 36*80ee5cbfSDavid du Colombier 37*80ee5cbfSDavid du Colombier typedef union FPdbleword FPdbleword; 38*80ee5cbfSDavid du Colombier union FPdbleword 39*80ee5cbfSDavid du Colombier { 40*80ee5cbfSDavid du Colombier double x; 41*80ee5cbfSDavid du Colombier struct { /* little endian */ 42*80ee5cbfSDavid du Colombier long lo; 43*80ee5cbfSDavid du Colombier long hi; 44*80ee5cbfSDavid du Colombier }; 45*80ee5cbfSDavid du Colombier }; 46*80ee5cbfSDavid du Colombier 47*80ee5cbfSDavid du Colombier #ifdef _RESEARCH_SOURCE 48*80ee5cbfSDavid du Colombier /* define stuff needed for floating conversion */ 49*80ee5cbfSDavid du Colombier #define IEEE_8087 1 50*80ee5cbfSDavid du Colombier #define Sudden_Underflow 1 51*80ee5cbfSDavid du Colombier #endif 52*80ee5cbfSDavid du Colombier #ifdef _PLAN9_SOURCE 53*80ee5cbfSDavid du Colombier /* FCR */ 54*80ee5cbfSDavid du Colombier #define FPINEX (1<<5) 55*80ee5cbfSDavid du Colombier #define FPOVFL (1<<3) 56*80ee5cbfSDavid du Colombier #define FPUNFL ((1<<4)|(1<<1)) 57*80ee5cbfSDavid du Colombier #define FPZDIV (1<<2) 58*80ee5cbfSDavid du Colombier #define FPRNR (0<<10) 59*80ee5cbfSDavid du Colombier #define FPRZ (3<<10) 60*80ee5cbfSDavid du Colombier #define FPRPINF (2<<10) 61*80ee5cbfSDavid du Colombier #define FPRNINF (1<<10) 62*80ee5cbfSDavid du Colombier #define FPRMASK (3<<10) 63*80ee5cbfSDavid du Colombier #define FPPEXT (3<<8) 64*80ee5cbfSDavid du Colombier #define FPPSGL (0<<8) 65*80ee5cbfSDavid du Colombier #define FPPDBL (2<<8) 66*80ee5cbfSDavid du Colombier #define FPPMASK (3<<8) 67*80ee5cbfSDavid du Colombier /* FSR */ 68*80ee5cbfSDavid du Colombier #define FPAINEX FPINEX 69*80ee5cbfSDavid du Colombier #define FPAOVFL FPOVFL 70*80ee5cbfSDavid du Colombier #define FPAUNFL FPUNFL 71*80ee5cbfSDavid du Colombier #define FPAZDIV FPZDIV 72*80ee5cbfSDavid du Colombier #endif 73*80ee5cbfSDavid du Colombier #endif /* __FLOAT */ 74