Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygengcc_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
1.7.6.1
|