ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

gcc_float.h
Go to the documentation of this file.
00001 /* Copyright (C) 2002 Free Software Foundation, Inc.
00002 
00003 This file is part of GCC.
00004 
00005 GCC is free software; you can redistribute it and/or modify
00006 it under the terms of the GNU General Public License as published by
00007 the Free Software Foundation; either version 2, or (at your option)
00008 any later version.
00009 
00010 GCC is distributed in the hope that it will be useful,
00011 but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 GNU General Public License for more details.
00014 
00015 You should have received a copy of the GNU General Public License
00016 along with GCC; see the file COPYING.  If not, write to
00017 the Free Software Foundation, 51 Franklin Street, Fifth Floor,
00018 Boston, MA 02110-1301, USA.  */
00019 
00020 /* As a special exception, if you include this header file into source
00021    files compiled by GCC, this header file does not by itself cause
00022    the resulting executable to be covered by the GNU General Public
00023    License.  This exception does not however invalidate any other
00024    reasons why the executable file might be covered by the GNU General
00025    Public License.  */
00026 
00027 /*
00028  * ISO C Standard:  5.2.4.2.2  Characteristics of floating types <float.h>
00029  */
00030 
00031 #ifndef _FLOAT_H___
00032 #define _FLOAT_H___
00033 
00034 /* Radix of exponent representation, b. */
00035 #undef FLT_RADIX
00036 #define FLT_RADIX   __FLT_RADIX__
00037 
00038 /* Number of base-FLT_RADIX digits in the significand, p.  */
00039 #undef FLT_MANT_DIG
00040 #undef DBL_MANT_DIG
00041 #undef LDBL_MANT_DIG
00042 #define FLT_MANT_DIG    __FLT_MANT_DIG__
00043 #define DBL_MANT_DIG    __DBL_MANT_DIG__
00044 #define LDBL_MANT_DIG   __LDBL_MANT_DIG__
00045 
00046 /* Number of decimal digits, q, such that any floating-point number with q
00047    decimal digits can be rounded into a floating-point number with p radix b
00048    digits and back again without change to the q decimal digits,
00049 
00050     p * log10(b)            if b is a power of 10
00051     floor((p - 1) * log10(b))   otherwise
00052 */
00053 #undef FLT_DIG
00054 #undef DBL_DIG
00055 #undef LDBL_DIG
00056 #define FLT_DIG     __FLT_DIG__
00057 #define DBL_DIG     __DBL_DIG__
00058 #define LDBL_DIG    __LDBL_DIG__
00059 
00060 /* Minimum int x such that FLT_RADIX**(x-1) is a normalized float, emin */
00061 #undef FLT_MIN_EXP
00062 #undef DBL_MIN_EXP
00063 #undef LDBL_MIN_EXP
00064 #define FLT_MIN_EXP __FLT_MIN_EXP__
00065 #define DBL_MIN_EXP __DBL_MIN_EXP__
00066 #define LDBL_MIN_EXP    __LDBL_MIN_EXP__
00067 
00068 /* Minimum negative integer such that 10 raised to that power is in the
00069    range of normalized floating-point numbers,
00070 
00071     ceil(log10(b) * (emin - 1))
00072 */
00073 #undef FLT_MIN_10_EXP
00074 #undef DBL_MIN_10_EXP
00075 #undef LDBL_MIN_10_EXP
00076 #define FLT_MIN_10_EXP  __FLT_MIN_10_EXP__
00077 #define DBL_MIN_10_EXP  __DBL_MIN_10_EXP__
00078 #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
00079 
00080 /* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax.  */
00081 #undef FLT_MAX_EXP
00082 #undef DBL_MAX_EXP
00083 #undef LDBL_MAX_EXP
00084 #define FLT_MAX_EXP __FLT_MAX_EXP__
00085 #define DBL_MAX_EXP __DBL_MAX_EXP__
00086 #define LDBL_MAX_EXP    __LDBL_MAX_EXP__
00087 
00088 /* Maximum integer such that 10 raised to that power is in the range of
00089    representable finite floating-point numbers,
00090 
00091     floor(log10((1 - b**-p) * b**emax))
00092 */
00093 #undef FLT_MAX_10_EXP
00094 #undef DBL_MAX_10_EXP
00095 #undef LDBL_MAX_10_EXP
00096 #define FLT_MAX_10_EXP  __FLT_MAX_10_EXP__
00097 #define DBL_MAX_10_EXP  __DBL_MAX_10_EXP__
00098 #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
00099 
00100 /* Maximum representable finite floating-point number,
00101 
00102     (1 - b**-p) * b**emax
00103 */
00104 #undef FLT_MAX
00105 #undef DBL_MAX
00106 #undef LDBL_MAX
00107 #define FLT_MAX     __FLT_MAX__
00108 #define DBL_MAX     __DBL_MAX__
00109 #define LDBL_MAX    __LDBL_MAX__
00110 
00111 /* The difference between 1 and the least value greater than 1 that is
00112    representable in the given floating point type, b**1-p.  */
00113 #undef FLT_EPSILON
00114 #undef DBL_EPSILON
00115 #undef LDBL_EPSILON
00116 #define FLT_EPSILON __FLT_EPSILON__
00117 #define DBL_EPSILON __DBL_EPSILON__
00118 #define LDBL_EPSILON    __LDBL_EPSILON__
00119 
00120 /* Minimum normalized positive floating-point number, b**(emin - 1).  */
00121 #undef FLT_MIN
00122 #undef DBL_MIN
00123 #undef LDBL_MIN
00124 #define FLT_MIN     __FLT_MIN__
00125 #define DBL_MIN     __DBL_MIN__
00126 #define LDBL_MIN    __LDBL_MIN__
00127 
00128 /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown.  */
00129 /* ??? This is supposed to change with calls to fesetround in <fenv.h>.  */
00130 #undef FLT_ROUNDS
00131 #define FLT_ROUNDS 1
00132 
00133 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
00134 /* The floating-point expression evaluation method.
00135         -1  indeterminate
00136          0  evaluate all operations and constants just to the range and
00137             precision of the type
00138          1  evaluate operations and constants of type float and double
00139             to the range and precision of the double type, evaluate
00140             long double operations and constants to the range and
00141             precision of the long double type
00142          2  evaluate all operations and constants to the range and
00143             precision of the long double type
00144 
00145    ??? This ought to change with the setting of the fp control word;
00146    the value provided by the compiler assumes the widest setting.  */
00147 #undef FLT_EVAL_METHOD
00148 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
00149 
00150 /* Number of decimal digits, n, such that any floating-point number in the
00151    widest supported floating type with pmax radix b digits can be rounded
00152    to a floating-point number with n decimal digits and back again without
00153    change to the value,
00154 
00155     pmax * log10(b)         if b is a power of 10
00156     ceil(1 + pmax * log10(b))   otherwise
00157 */
00158 #undef DECIMAL_DIG
00159 #define DECIMAL_DIG __DECIMAL_DIG__
00160 
00161 #endif /* C99 */
00162 #endif /* _FLOAT_H___ */

Generated on Sun May 27 2012 04:29:52 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.