Subversion Repositories planix.SVN

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef __FLOAT
#define __FLOAT
/* IEEE, default rounding */

#define FLT_ROUNDS      1
#define FLT_RADIX       2

#define FLT_DIG         6
#define FLT_EPSILON     1.19209290e-07
#define FLT_MANT_DIG    24
#define FLT_MAX         3.40282347e+38
#define FLT_MAX_10_EXP  38
#define FLT_MAX_EXP     128
#define FLT_MIN         1.17549435e-38
#define FLT_MIN_10_EXP  -37
#define FLT_MIN_EXP     -125

#define DBL_DIG         15
#define DBL_EPSILON     2.2204460492503131e-16
#define DBL_MANT_DIG    53
#define DBL_MAX         1.797693134862315708145e+308
#define DBL_MAX_10_EXP  308
#define DBL_MAX_EXP     1024
#define DBL_MIN         2.225073858507201383090233e-308
#define DBL_MIN_10_EXP  -307
#define DBL_MIN_EXP     -1021
#define LDBL_MANT_DIG   DBL_MANT_DIG
#define LDBL_EPSILON    DBL_EPSILON
#define LDBL_DIG        DBL_DIG
#define LDBL_MIN_EXP    DBL_MIN_EXP
#define LDBL_MIN        DBL_MIN
#define LDBL_MIN_10_EXP DBL_MIN_10_EXP
#define LDBL_MAX_EXP    DBL_MAX_EXP
#define LDBL_MAX        DBL_MAX
#define LDBL_MAX_10_EXP DBL_MAX_10_EXP

typedef         union FPdbleword FPdbleword;
union FPdbleword
{
        double  x;
        struct {        /* little endian */
                long lo;
                long hi;
        };
};

#ifdef _RESEARCH_SOURCE
/* define stuff needed for floating conversion */
#define IEEE_8087       1
#define Sudden_Underflow 1
#endif
#ifdef _PLAN9_SOURCE
/* FCR */
#define FPINEX  (1<<5)
#define FPOVFL  (1<<3)
#define FPUNFL  ((1<<4)|(1<<1))
#define FPZDIV  (1<<2)
#define FPRNR   (0<<10)
#define FPRZ    (3<<10)
#define FPRPINF (2<<10)
#define FPRNINF (1<<10)
#define FPRMASK (3<<10)
#define FPPEXT  (3<<8)
#define FPPSGL  (0<<8)
#define FPPDBL  (2<<8)
#define FPPMASK (3<<8)
/* FSR */
#define FPAINEX FPINEX
#define FPAOVFL FPOVFL
#define FPAUNFL FPUNFL
#define FPAZDIV FPZDIV
#endif
#endif /* __FLOAT */