17dd7cddfSDavid du Colombier #ifndef __FLOAT 27dd7cddfSDavid du Colombier #define __FLOAT 37dd7cddfSDavid du Colombier /* IEEE, default rounding */ 47dd7cddfSDavid du Colombier 57dd7cddfSDavid du Colombier #define FLT_ROUNDS 1 67dd7cddfSDavid du Colombier #define FLT_RADIX 2 77dd7cddfSDavid du Colombier 87dd7cddfSDavid du Colombier #define FLT_DIG 6 97dd7cddfSDavid du Colombier #define FLT_EPSILON 1.19209290e-07 107dd7cddfSDavid du Colombier #define FLT_MANT_DIG 24 117dd7cddfSDavid du Colombier #define FLT_MAX 3.40282347e+38 127dd7cddfSDavid du Colombier #define FLT_MAX_10_EXP 38 137dd7cddfSDavid du Colombier #define FLT_MAX_EXP 128 147dd7cddfSDavid du Colombier #define FLT_MIN 1.17549435e-38 157dd7cddfSDavid du Colombier #define FLT_MIN_10_EXP -37 167dd7cddfSDavid du Colombier #define FLT_MIN_EXP -125 177dd7cddfSDavid du Colombier 187dd7cddfSDavid du Colombier #define DBL_DIG 15 197dd7cddfSDavid du Colombier #define DBL_EPSILON 2.2204460492503131e-16 207dd7cddfSDavid du Colombier #define DBL_MANT_DIG 53 217dd7cddfSDavid du Colombier #define DBL_MAX 1.797693134862315708145e+308 227dd7cddfSDavid du Colombier #define DBL_MAX_10_EXP 308 237dd7cddfSDavid du Colombier #define DBL_MAX_EXP 1024 247dd7cddfSDavid du Colombier #define DBL_MIN 2.225073858507201383090233e-308 257dd7cddfSDavid du Colombier #define DBL_MIN_10_EXP -307 267dd7cddfSDavid du Colombier #define DBL_MIN_EXP -1021 277dd7cddfSDavid du Colombier #define LDBL_MANT_DIG DBL_MANT_DIG 287dd7cddfSDavid du Colombier #define LDBL_EPSILON DBL_EPSILON 297dd7cddfSDavid du Colombier #define LDBL_DIG DBL_DIG 307dd7cddfSDavid du Colombier #define LDBL_MIN_EXP DBL_MIN_EXP 317dd7cddfSDavid du Colombier #define LDBL_MIN DBL_MIN 327dd7cddfSDavid du Colombier #define LDBL_MIN_10_EXP DBL_MIN_10_EXP 337dd7cddfSDavid du Colombier #define LDBL_MAX_EXP DBL_MAX_EXP 347dd7cddfSDavid du Colombier #define LDBL_MAX DBL_MAX 357dd7cddfSDavid du Colombier #define LDBL_MAX_10_EXP DBL_MAX_10_EXP 367dd7cddfSDavid 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 477dd7cddfSDavid du Colombier #ifdef _RESEARCH_SOURCE 487dd7cddfSDavid du Colombier /* define stuff needed for floating conversion */ 497dd7cddfSDavid du Colombier #define IEEE_MC68k 1 507dd7cddfSDavid du Colombier #define Sudden_Underflow 1 517dd7cddfSDavid du Colombier #endif 527dd7cddfSDavid du Colombier #ifdef _PLAN9_SOURCE 537dd7cddfSDavid du Colombier /* FCR */ 547dd7cddfSDavid du Colombier #define FPINEX (1<<7) 557dd7cddfSDavid du Colombier #define FPOVFL (1<<9) 567dd7cddfSDavid du Colombier #define FPUNFL (1<<8) 577dd7cddfSDavid du Colombier #define FPZDIV (1<<10) 587dd7cddfSDavid du Colombier #define FPRNR (0<<0) 597dd7cddfSDavid du Colombier #define FPRZ (1<<0) 607dd7cddfSDavid du Colombier #define FPRPINF (2<<0) 617dd7cddfSDavid du Colombier #define FPRNINF (3<<0) 627dd7cddfSDavid du Colombier #define FPRMASK (3<<0) 637dd7cddfSDavid du Colombier #define FPPEXT 0 647dd7cddfSDavid du Colombier #define FPPSGL 0 657dd7cddfSDavid du Colombier #define FPPDBL 0 667dd7cddfSDavid du Colombier #define FPPMASK 0 677dd7cddfSDavid du Colombier /* FSR */ 687dd7cddfSDavid du Colombier #define FPAINEX (1<<2) 697dd7cddfSDavid du Colombier #define FPAOVFL (1<<4) 707dd7cddfSDavid du Colombier #define FPAUNFL (1<<3) 717dd7cddfSDavid du Colombier #define FPAZDIV (1<<5) 727dd7cddfSDavid du Colombier #endif 737dd7cddfSDavid du Colombier #endif /* __FLOAT */ 74