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