Annotation of mstools/h/float.h, revision 1.1

1.1     ! root        1: /***
        !             2: *float.h - constants for floating point values
        !             3: *
        !             4: *      Copyright (c) 1985-1991, Microsoft Corporation. All rights reserved.
        !             5: *
        !             6: *Purpose:
        !             7: *      This file contains defines for a number of implementation dependent
        !             8: *      values which are commonly used by sophisticated numerical (floating
        !             9: *      point) programs.
        !            10: *      [ANSI]
        !            11: *
        !            12: ****/
        !            13: 
        !            14: #ifndef _INC_FLOAT
        !            15: 
        !            16: #ifdef __cplusplus
        !            17: extern "C" {
        !            18: #endif
        !            19: 
        !            20: 
        !            21: #if (_MSC_VER <= 600)
        !            22: #define __cdecl _cdecl
        !            23: #endif
        !            24: 
        !            25: #define DBL_DIG        15                      /* # of decimal digits of precision */
        !            26: #define DBL_EPSILON    2.2204460492503131e-016 /* smallest such that 1.0+DBL_EPSILON != 1.0 */
        !            27: #define DBL_MANT_DIG   53                      /* # of bits in mantissa */
        !            28: #define DBL_MAX        1.7976931348623158e+308 /* max value */
        !            29: #define DBL_MAX_10_EXP 308                     /* max decimal exponent */
        !            30: #define DBL_MAX_EXP    1024                    /* max binary exponent */
        !            31: #define DBL_MIN        2.2250738585072014e-308 /* min positive value */
        !            32: #define DBL_MIN_10_EXP (-307)                  /* min decimal exponent */
        !            33: #define DBL_MIN_EXP    (-1021)                 /* min binary exponent */
        !            34: #define _DBL_RADIX     2                       /* exponent radix */
        !            35: #define _DBL_ROUNDS    1                       /* addition rounding: near */
        !            36: 
        !            37: #define FLT_DIG        6                       /* # of decimal digits of precision */
        !            38: #define FLT_EPSILON    1.192092896e-07F        /* smallest such that 1.0+FLT_EPSILON != 1.0 */
        !            39: #define FLT_GUARD      0
        !            40: #define FLT_MANT_DIG   24                      /* # of bits in mantissa */
        !            41: #define FLT_MAX        3.402823466e+38F        /* max value */
        !            42: #define FLT_MAX_10_EXP 38                      /* max decimal exponent */
        !            43: #define FLT_MAX_EXP    128                     /* max binary exponent */
        !            44: #define FLT_MIN        1.175494351e-38F        /* min positive value */
        !            45: #define FLT_MIN_10_EXP (-37)                   /* min decimal exponent */
        !            46: #define FLT_MIN_EXP    (-125)                  /* min binary exponent */
        !            47: #define FLT_NORMALIZE  0
        !            48: #define FLT_RADIX      2                       /* exponent radix */
        !            49: #define FLT_ROUNDS     1                       /* addition rounding: near */
        !            50: 
        !            51: #define LDBL_DIG       DBL_DIG                 /* # of decimal digits of precision */
        !            52: #define LDBL_EPSILON   DBL_EPSILON             /* smallest such that 1.0+LDBL_EPSILON != 1.0 */
        !            53: #define LDBL_MANT_DIG  DBL_MANT_DIG            /* # of bits in mantissa */
        !            54: #define LDBL_MAX       DBL_MAX                 /* max value */
        !            55: #define LDBL_MAX_10_EXP DBL_MAX_10_EXP         /* max decimal exponent */
        !            56: #define LDBL_MAX_EXP   DBL_MAX_EXP             /* max binary exponent */
        !            57: #define LDBL_MIN       DBL_MIN                 /* min positive value */
        !            58: #define LDBL_MIN_10_EXP DBL_MIN_10_EXP         /* min decimal exponent */
        !            59: #define LDBL_MIN_EXP   DBL_MIN_EXP             /* min binary exponent */
        !            60: #define _LDBL_RADIX    DBL_RADIX               /* exponent radix */
        !            61: #define _LDBL_ROUNDS   DBL_ROUNDS              /* addition rounding: near */
        !            62: 
        !            63: 
        !            64: 
        !            65: /*
        !            66:  *  8087/80287 math control information
        !            67:  */
        !            68: 
        !            69: 
        !            70: /* User Control Word Mask and bit definitions.
        !            71:  * These definitions match the 8087/80287
        !            72:  */
        !            73: 
        !            74: #define _MCW_EM        0x003f          /* interrupt Exception Masks */
        !            75: #define _EM_INVALID    0x0001          /*   invalid */
        !            76: #define _EM_DENORMAL   0x0002          /*   denormal */
        !            77: #define _EM_ZERODIVIDE 0x0004          /*   zero divide */
        !            78: #define _EM_OVERFLOW   0x0008          /*   overflow */
        !            79: #define _EM_UNDERFLOW  0x0010          /*   underflow */
        !            80: #define _EM_INEXACT    0x0020          /*   inexact (precision) */
        !            81: 
        !            82: #define _MCW_IC        0x1000          /* Infinity Control */
        !            83: #define _IC_AFFINE     0x1000          /*   affine */
        !            84: #define _IC_PROJECTIVE 0x0000          /*   projective */
        !            85: 
        !            86: #define _MCW_RC        0x0c00          /* Rounding Control */
        !            87: #define _RC_CHOP       0x0c00          /*   chop */
        !            88: #define _RC_UP         0x0800          /*   up */
        !            89: #define _RC_DOWN       0x0400          /*   down */
        !            90: #define _RC_NEAR       0x0000          /*   near */
        !            91: 
        !            92: #define _MCW_PC        0x0300          /* Precision Control */
        !            93: #define _PC_24         0x0000          /*    24 bits */
        !            94: #define _PC_53         0x0200          /*    53 bits */
        !            95: #define _PC_64         0x0300          /*    64 bits */
        !            96: 
        !            97: 
        !            98: /* initial Control Word value */
        !            99: 
        !           100: #define _CW_DEFAULT ( _IC_AFFINE + _RC_NEAR + _PC_64 + _EM_DENORMAL + _EM_UNDERFLOW + _EM_INEXACT )
        !           101: 
        !           102: 
        !           103: /* user Status Word bit definitions */
        !           104: 
        !           105: #define _SW_INVALID    0x0001  /* invalid */
        !           106: #define _SW_DENORMAL   0x0002  /* denormal */
        !           107: #define _SW_ZERODIVIDE 0x0004  /* zero divide */
        !           108: #define _SW_OVERFLOW   0x0008  /* overflow */
        !           109: #define _SW_UNDERFLOW  0x0010  /* underflow */
        !           110: #define _SW_INEXACT    0x0020  /* inexact (precision) */
        !           111: 
        !           112: 
        !           113: /* invalid subconditions (_SW_INVALID also set) */
        !           114: 
        !           115: #define _SW_UNEMULATED         0x0040  /* unemulated instruction */
        !           116: #define _SW_SQRTNEG            0x0080  /* square root of a neg number */
        !           117: #define _SW_STACKOVERFLOW      0x0200  /* FP stack overflow */
        !           118: #define _SW_STACKUNDERFLOW     0x0400  /* FP stack underflow */
        !           119: 
        !           120: 
        !           121: /* Global variable holding floating point error code */
        !           122: 
        !           123: #ifdef _MT
        !           124: extern int * __fpecode(void);
        !           125: #define _fpecode       (*__fpecode())
        !           126: #else
        !           127: extern int _fpecode;
        !           128: #endif
        !           129: 
        !           130: 
        !           131: /*  Floating point error signals and return codes */
        !           132: 
        !           133: #define _FPE_INVALID           0x81
        !           134: #define _FPE_DENORMAL          0x82
        !           135: #define _FPE_ZERODIVIDE        0x83
        !           136: #define _FPE_OVERFLOW          0x84
        !           137: #define _FPE_UNDERFLOW         0x85
        !           138: #define _FPE_INEXACT           0x86
        !           139: 
        !           140: #define _FPE_UNEMULATED        0x87
        !           141: #define _FPE_SQRTNEG           0x88
        !           142: #define _FPE_STACKOVERFLOW     0x8a
        !           143: #define _FPE_STACKUNDERFLOW    0x8b
        !           144: 
        !           145: #define _FPE_EXPLICITGEN       0x8c    /* raise( SIGFPE ); */
        !           146: 
        !           147: 
        !           148: /* function prototypes */
        !           149: 
        !           150: unsigned int _clear87(void);
        !           151: unsigned int _control87(unsigned int,unsigned int);
        !           152: void _fpreset(void);
        !           153: unsigned int _status87(void);
        !           154: 
        !           155: #if !__STDC__
        !           156: /* Non-ANSI names for compatibility */
        !           157: 
        !           158: #define DBL_RADIX              _DBL_RADIX
        !           159: #define DBL_ROUNDS             _DBL_ROUNDS
        !           160: 
        !           161: #define LDBL_RADIX             _LDBL_RADIX
        !           162: #define LDBL_ROUNDS            _LDBL_ROUNDS
        !           163: 
        !           164: #define MCW_EM                 _MCW_EM
        !           165: #define EM_INVALID             _EM_INVALID
        !           166: #define EM_DENORMAL            _EM_DENORMAL
        !           167: #define EM_ZERODIVIDE          _EM_ZERODIVIDE
        !           168: #define EM_OVERFLOW            _EM_OVERFLOW
        !           169: #define EM_UNDERFLOW           _EM_UNDERFLOW
        !           170: #define EM_INEXACT             _EM_INEXACT
        !           171: 
        !           172: #define MCW_IC                 _MCW_IC
        !           173: #define IC_AFFINE              _IC_AFFINE
        !           174: #define IC_PROJECTIVE          _IC_PROJECTIVE
        !           175: 
        !           176: #define MCW_RC                 _MCW_RC
        !           177: #define RC_CHOP                _RC_CHOP
        !           178: #define RC_UP                  _RC_UP
        !           179: #define RC_DOWN                _RC_DOWN
        !           180: #define RC_NEAR                _RC_NEAR
        !           181: 
        !           182: #define MCW_PC                 _MCW_PC
        !           183: #define PC_24                  _PC_24
        !           184: #define PC_53                  _PC_53
        !           185: #define PC_64                  _PC_64
        !           186: 
        !           187: #define CW_DEFAULT             _CW_DEFAULT
        !           188: 
        !           189: #define SW_INVALID             _SW_INVALID
        !           190: #define SW_DENORMAL            _SW_DENORMAL
        !           191: #define SW_ZERODIVIDE          _SW_ZERODIVIDE
        !           192: #define SW_OVERFLOW            _SW_OVERFLOW
        !           193: #define SW_UNDERFLOW           _SW_UNDERFLOW
        !           194: #define SW_INEXACT             _SW_INEXACT
        !           195: 
        !           196: #define SW_UNEMULATED          _SW_UNEMULATED
        !           197: #define SW_SQRTNEG             _SW_SQRTNEG
        !           198: #define SW_STACKOVERFLOW       _SW_STACKOVERFLOW
        !           199: #define SW_STACKUNDERFLOW      _SW_STACKUNDERFLOW
        !           200: 
        !           201: #define FPE_INVALID            _FPE_INVALID
        !           202: #define FPE_DENORMAL           _FPE_DENORMAL
        !           203: #define FPE_ZERODIVIDE         _FPE_ZERODIVIDE
        !           204: #define FPE_OVERFLOW           _FPE_OVERFLOW
        !           205: #define FPE_UNDERFLOW          _FPE_UNDERFLOW
        !           206: #define FPE_INEXACT            _FPE_INEXACT
        !           207: 
        !           208: #define FPE_UNEMULATED         _FPE_UNEMULATED
        !           209: #define FPE_SQRTNEG            _FPE_SQRTNEG
        !           210: #define FPE_STACKOVERFLOW      _FPE_STACKOVERFLOW
        !           211: #define FPE_STACKUNDERFLOW     _FPE_STACKUNDERFLOW
        !           212: 
        !           213: #define FPE_EXPLICITGEN        _FPE_EXPLICITGEN
        !           214: 
        !           215: #endif /* __STDC__ */
        !           216: 
        !           217: 
        !           218: #ifdef __cplusplus
        !           219: }
        !           220: #endif
        !           221: 
        !           222: #define _INC_FLOAT
        !           223: #endif /* _INC_FLOAT */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.