123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- #define NoException 0
- #define dSgnMask 0x80000000
- #define sSgnMask 0x7FFFFFFF
- #define dExpMask 0x7FF00000
- #define sExpMask 0xFF000000
-
- #define BIG 1.1e+300
- #define SMALL 1.1e-300
- #define InfExp 0x7FF
- #define dMaxExp 0x7FF00000
- #define MaxExpP1 1024
- #define MaxExp 1023
- #define DenormLimit -52
- #define dManMask 0x00080000
- #define dIsItDenorm 0x00080000
- #define dIsItSNaN 0x00080000
- #define dHighMan 0x000FFFFF
- #define dFirstBitSet 0x00080000
- #define BIAS 0x3FF
- #define dGetSign 0x80000000
- #define sGetSign 0x80000000
- #define dInfinity(x) ( x.hex.high & dExpMask ) == dExpMask
- #define sInfinity(x) ( ( x.hexsgl << 1 ) & sExpMask ) == sExpMask
- #define dExponent(x) x.hex.high & dExpMask
- #define sExponent(x) ( ( x.hexsgl << 1 ) & sExpMask )
- #define sZero(x) ( x.hexsgl & sSgnMask ) == 0
- typedef struct
- {
- #if defined(__BIG_ENDIAN__)
- unsigned long int high;
- unsigned long int low;
- #else
- unsigned long int low;
- unsigned long int high;
- #endif
- } dHexParts;
- typedef union
- {
- unsigned char byties[8];
- double dbl;
- } DblInHex;
- #define highpartd(x) *((long *) &x)
- #define lowpartd(x) *((long *) &x + 1)
- enum {
- FP_SNAN = 0,
- FP_QNAN = 1,
- FP_INFINITE = 2,
-
- FP_ZERO = 3,
- FP_NORMAL = 4,
- FP_SUBNORMAL = 5
- };
|