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