13e12c5d1SDavid du Colombier #ifndef __FLOAT 23e12c5d1SDavid du Colombier #define __FLOAT 33e12c5d1SDavid du Colombier /* IEEE, default rounding */ 43e12c5d1SDavid du Colombier 53e12c5d1SDavid du Colombier #define FLT_ROUNDS 1 63e12c5d1SDavid du Colombier #define FLT_RADIX 2 73e12c5d1SDavid du Colombier 83e12c5d1SDavid du Colombier #define FLT_DIG 6 93e12c5d1SDavid du Colombier #define FLT_EPSILON 1.19209290e-07 103e12c5d1SDavid du Colombier #define FLT_MANT_DIG 24 113e12c5d1SDavid du Colombier #define FLT_MAX 3.40282347e+38 123e12c5d1SDavid du Colombier #define FLT_MAX_10_EXP 38 133e12c5d1SDavid du Colombier #define FLT_MAX_EXP 128 143e12c5d1SDavid du Colombier #define FLT_MIN 1.17549435e-38 153e12c5d1SDavid du Colombier #define FLT_MIN_10_EXP -37 163e12c5d1SDavid du Colombier #define FLT_MIN_EXP -125 173e12c5d1SDavid du Colombier 183e12c5d1SDavid du Colombier #define DBL_DIG 15 193e12c5d1SDavid du Colombier #define DBL_EPSILON 2.2204460492503131e-16 203e12c5d1SDavid du Colombier #define DBL_MANT_DIG 53 213e12c5d1SDavid du Colombier #define DBL_MAX 1.797693134862315708145e+308 223e12c5d1SDavid du Colombier #define DBL_MAX_10_EXP 308 233e12c5d1SDavid du Colombier #define DBL_MAX_EXP 1024 243e12c5d1SDavid du Colombier #define DBL_MIN 2.225073858507201383090233e-308 253e12c5d1SDavid du Colombier #define DBL_MIN_10_EXP -307 263e12c5d1SDavid du Colombier #define DBL_MIN_EXP -1021 273e12c5d1SDavid du Colombier #define LDBL_MANT_DIG DBL_MANT_DIG 283e12c5d1SDavid du Colombier #define LDBL_EPSILON DBL_EPSILON 293e12c5d1SDavid du Colombier #define LDBL_DIG DBL_DIG 303e12c5d1SDavid du Colombier #define LDBL_MIN_EXP DBL_MIN_EXP 313e12c5d1SDavid du Colombier #define LDBL_MIN DBL_MIN 323e12c5d1SDavid du Colombier #define LDBL_MIN_10_EXP DBL_MIN_10_EXP 333e12c5d1SDavid du Colombier #define LDBL_MAX_EXP DBL_MAX_EXP 343e12c5d1SDavid du Colombier #define LDBL_MAX DBL_MAX 353e12c5d1SDavid du Colombier #define LDBL_MAX_10_EXP DBL_MAX_10_EXP 363e12c5d1SDavid du Colombier 37*59cc4ca5SDavid du Colombier typedef union FPdbleword FPdbleword; 38*59cc4ca5SDavid du Colombier union FPdbleword 39*59cc4ca5SDavid du Colombier { 40*59cc4ca5SDavid du Colombier double x; 41*59cc4ca5SDavid du Colombier struct { /* big endian */ 42*59cc4ca5SDavid du Colombier long hi; 43*59cc4ca5SDavid du Colombier long lo; 44*59cc4ca5SDavid du Colombier }; 45*59cc4ca5SDavid du Colombier }; 46*59cc4ca5SDavid du Colombier 473e12c5d1SDavid du Colombier #ifdef _RESEARCH_SOURCE 483e12c5d1SDavid du Colombier /* define stuff needed for floating conversion */ 493e12c5d1SDavid du Colombier #define IEEE_MC68k 1 503e12c5d1SDavid du Colombier #define Sudden_Underflow 1 513e12c5d1SDavid du Colombier #endif 523e12c5d1SDavid du Colombier #ifdef _PLAN9_SOURCE 533e12c5d1SDavid du Colombier /* FCR */ 543e12c5d1SDavid du Colombier #define FPINEX (1<<7) 553e12c5d1SDavid du Colombier #define FPOVFL (1<<9) 563e12c5d1SDavid du Colombier #define FPUNFL (1<<8) 573e12c5d1SDavid du Colombier #define FPZDIV (1<<10) 583e12c5d1SDavid du Colombier #define FPRNR (0<<0) 593e12c5d1SDavid du Colombier #define FPRZ (1<<0) 603e12c5d1SDavid du Colombier #define FPRPINF (2<<0) 613e12c5d1SDavid du Colombier #define FPRNINF (3<<0) 623e12c5d1SDavid du Colombier #define FPRMASK (3<<0) 633e12c5d1SDavid du Colombier #define FPPEXT 0 643e12c5d1SDavid du Colombier #define FPPSGL 0 653e12c5d1SDavid du Colombier #define FPPDBL 0 663e12c5d1SDavid du Colombier #define FPPMASK 0 673e12c5d1SDavid du Colombier /* FSR */ 683e12c5d1SDavid du Colombier #define FPAINEX (1<<2) 693e12c5d1SDavid du Colombier #define FPAOVFL (1<<4) 703e12c5d1SDavid du Colombier #define FPAUNFL (1<<3) 713e12c5d1SDavid du Colombier #define FPAZDIV (1<<5) 723e12c5d1SDavid du Colombier #endif 733e12c5d1SDavid du Colombier #endif /* __FLOAT */ 74