Mercurial > hg > CbC > CbC_gcc
annotate gcc/ginclude/float.h @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
rev | line source |
---|---|
131 | 1 /* Copyright (C) 2002-2018 Free Software Foundation, Inc. |
0 | 2 |
3 This file is part of GCC. | |
4 | |
5 GCC is free software; you can redistribute it and/or modify | |
6 it under the terms of the GNU General Public License as published by | |
7 the Free Software Foundation; either version 3, or (at your option) | |
8 any later version. | |
9 | |
10 GCC is distributed in the hope that it will be useful, | |
11 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 GNU General Public License for more details. | |
14 | |
15 Under Section 7 of GPL version 3, you are granted additional | |
16 permissions described in the GCC Runtime Library Exception, version | |
17 3.1, as published by the Free Software Foundation. | |
18 | |
19 You should have received a copy of the GNU General Public License and | |
20 a copy of the GCC Runtime Library Exception along with this program; | |
21 see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
22 <http://www.gnu.org/licenses/>. */ | |
23 | |
24 /* | |
25 * ISO C Standard: 5.2.4.2.2 Characteristics of floating types <float.h> | |
26 */ | |
27 | |
28 #ifndef _FLOAT_H___ | |
29 #define _FLOAT_H___ | |
30 | |
31 /* Radix of exponent representation, b. */ | |
32 #undef FLT_RADIX | |
33 #define FLT_RADIX __FLT_RADIX__ | |
34 | |
35 /* Number of base-FLT_RADIX digits in the significand, p. */ | |
36 #undef FLT_MANT_DIG | |
37 #undef DBL_MANT_DIG | |
38 #undef LDBL_MANT_DIG | |
39 #define FLT_MANT_DIG __FLT_MANT_DIG__ | |
40 #define DBL_MANT_DIG __DBL_MANT_DIG__ | |
41 #define LDBL_MANT_DIG __LDBL_MANT_DIG__ | |
42 | |
43 /* Number of decimal digits, q, such that any floating-point number with q | |
44 decimal digits can be rounded into a floating-point number with p radix b | |
45 digits and back again without change to the q decimal digits, | |
46 | |
47 p * log10(b) if b is a power of 10 | |
48 floor((p - 1) * log10(b)) otherwise | |
49 */ | |
50 #undef FLT_DIG | |
51 #undef DBL_DIG | |
52 #undef LDBL_DIG | |
53 #define FLT_DIG __FLT_DIG__ | |
54 #define DBL_DIG __DBL_DIG__ | |
55 #define LDBL_DIG __LDBL_DIG__ | |
56 | |
57 /* Minimum int x such that FLT_RADIX**(x-1) is a normalized float, emin */ | |
58 #undef FLT_MIN_EXP | |
59 #undef DBL_MIN_EXP | |
60 #undef LDBL_MIN_EXP | |
61 #define FLT_MIN_EXP __FLT_MIN_EXP__ | |
62 #define DBL_MIN_EXP __DBL_MIN_EXP__ | |
63 #define LDBL_MIN_EXP __LDBL_MIN_EXP__ | |
64 | |
65 /* Minimum negative integer such that 10 raised to that power is in the | |
66 range of normalized floating-point numbers, | |
67 | |
68 ceil(log10(b) * (emin - 1)) | |
69 */ | |
70 #undef FLT_MIN_10_EXP | |
71 #undef DBL_MIN_10_EXP | |
72 #undef LDBL_MIN_10_EXP | |
73 #define FLT_MIN_10_EXP __FLT_MIN_10_EXP__ | |
74 #define DBL_MIN_10_EXP __DBL_MIN_10_EXP__ | |
75 #define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__ | |
76 | |
77 /* Maximum int x such that FLT_RADIX**(x-1) is a representable float, emax. */ | |
78 #undef FLT_MAX_EXP | |
79 #undef DBL_MAX_EXP | |
80 #undef LDBL_MAX_EXP | |
81 #define FLT_MAX_EXP __FLT_MAX_EXP__ | |
82 #define DBL_MAX_EXP __DBL_MAX_EXP__ | |
83 #define LDBL_MAX_EXP __LDBL_MAX_EXP__ | |
84 | |
85 /* Maximum integer such that 10 raised to that power is in the range of | |
86 representable finite floating-point numbers, | |
87 | |
88 floor(log10((1 - b**-p) * b**emax)) | |
89 */ | |
90 #undef FLT_MAX_10_EXP | |
91 #undef DBL_MAX_10_EXP | |
92 #undef LDBL_MAX_10_EXP | |
93 #define FLT_MAX_10_EXP __FLT_MAX_10_EXP__ | |
94 #define DBL_MAX_10_EXP __DBL_MAX_10_EXP__ | |
95 #define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__ | |
96 | |
97 /* Maximum representable finite floating-point number, | |
98 | |
99 (1 - b**-p) * b**emax | |
100 */ | |
101 #undef FLT_MAX | |
102 #undef DBL_MAX | |
103 #undef LDBL_MAX | |
104 #define FLT_MAX __FLT_MAX__ | |
105 #define DBL_MAX __DBL_MAX__ | |
106 #define LDBL_MAX __LDBL_MAX__ | |
107 | |
108 /* The difference between 1 and the least value greater than 1 that is | |
109 representable in the given floating point type, b**1-p. */ | |
110 #undef FLT_EPSILON | |
111 #undef DBL_EPSILON | |
112 #undef LDBL_EPSILON | |
113 #define FLT_EPSILON __FLT_EPSILON__ | |
114 #define DBL_EPSILON __DBL_EPSILON__ | |
115 #define LDBL_EPSILON __LDBL_EPSILON__ | |
116 | |
117 /* Minimum normalized positive floating-point number, b**(emin - 1). */ | |
118 #undef FLT_MIN | |
119 #undef DBL_MIN | |
120 #undef LDBL_MIN | |
121 #define FLT_MIN __FLT_MIN__ | |
122 #define DBL_MIN __DBL_MIN__ | |
123 #define LDBL_MIN __LDBL_MIN__ | |
124 | |
125 /* Addition rounds to 0: zero, 1: nearest, 2: +inf, 3: -inf, -1: unknown. */ | |
126 /* ??? This is supposed to change with calls to fesetround in <fenv.h>. */ | |
127 #undef FLT_ROUNDS | |
128 #define FLT_ROUNDS 1 | |
129 | |
111 | 130 #if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) \ |
131 || (defined (__cplusplus) && __cplusplus >= 201103L) | |
132 /* The floating-point expression evaluation method. The precise | |
133 definitions of these values are generalised to include support for | |
134 the interchange and extended types defined in ISO/IEC TS 18661-3. | |
135 Prior to this (for C99/C11) the definitions were: | |
136 | |
137 -1 indeterminate | |
138 0 evaluate all operations and constants just to the range and | |
139 precision of the type | |
140 1 evaluate operations and constants of type float and double | |
141 to the range and precision of the double type, evaluate | |
142 long double operations and constants to the range and | |
143 precision of the long double type | |
144 2 evaluate all operations and constants to the range and | |
145 precision of the long double type | |
146 | |
147 The TS 18661-3 definitions are: | |
148 | |
149 -1 indeterminate | |
150 0 evaluate all operations and constants, whose semantic type has | |
151 at most the range and precision of float, to the range and | |
152 precision of float; evaluate all other operations and constants | |
153 to the range and precision of the semantic type. | |
154 1 evaluate all operations and constants, whose semantic type has | |
155 at most the range and precision of double, to the range and | |
156 precision of double; evaluate all other operations and constants | |
157 to the range and precision of the semantic type. | |
158 2 evaluate all operations and constants, whose semantic type has | |
159 at most the range and precision of long double, to the range and | |
160 precision of long double; evaluate all other operations and | |
161 constants to the range and precision of the semantic type. | |
162 N where _FloatN is a supported interchange floating type | |
163 evaluate all operations and constants, whose semantic type has | |
164 at most the range and precision of the _FloatN type, to the | |
165 range and precision of the _FloatN type; evaluate all other | |
166 operations and constants to the range and precision of the | |
167 semantic type. | |
168 N + 1, where _FloatNx is a supported extended floating type | |
169 evaluate operations and constants, whose semantic type has at | |
170 most the range and precision of the _FloatNx type, to the range | |
171 and precision of the _FloatNx type; evaluate all other | |
172 operations and constants to the range and precision of the | |
173 semantic type. | |
174 | |
175 The compiler predefines two macros: | |
176 | |
177 __FLT_EVAL_METHOD__ | |
178 Which, depending on the value given for | |
179 -fpermitted-flt-eval-methods, may be limited to only those values | |
180 for FLT_EVAL_METHOD defined in C99/C11. | |
181 | |
182 __FLT_EVAL_METHOD_TS_18661_3__ | |
183 Which always permits the values for FLT_EVAL_METHOD defined in | |
184 ISO/IEC TS 18661-3. | |
185 | |
186 Here we want to use __FLT_EVAL_METHOD__, unless | |
187 __STDC_WANT_IEC_60559_TYPES_EXT__ is defined, in which case the user | |
188 is specifically asking for the ISO/IEC TS 18661-3 types, so we use | |
189 __FLT_EVAL_METHOD_TS_18661_3__. | |
0 | 190 |
191 ??? This ought to change with the setting of the fp control word; | |
192 the value provided by the compiler assumes the widest setting. */ | |
193 #undef FLT_EVAL_METHOD | |
111 | 194 #ifdef __STDC_WANT_IEC_60559_TYPES_EXT__ |
195 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD_TS_18661_3__ | |
196 #else | |
0 | 197 #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__ |
111 | 198 #endif |
0 | 199 |
200 /* Number of decimal digits, n, such that any floating-point number in the | |
201 widest supported floating type with pmax radix b digits can be rounded | |
202 to a floating-point number with n decimal digits and back again without | |
203 change to the value, | |
204 | |
205 pmax * log10(b) if b is a power of 10 | |
206 ceil(1 + pmax * log10(b)) otherwise | |
207 */ | |
208 #undef DECIMAL_DIG | |
209 #define DECIMAL_DIG __DECIMAL_DIG__ | |
210 | |
211 #endif /* C99 */ | |
212 | |
111 | 213 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
214 /* Versions of DECIMAL_DIG for each floating-point type. */ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
215 #undef FLT_DECIMAL_DIG |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
216 #undef DBL_DECIMAL_DIG |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
217 #undef LDBL_DECIMAL_DIG |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
218 #define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
219 #define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__ |
111 | 220 #define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__ |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
221 |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
222 /* Whether types support subnormal numbers. */ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
223 #undef FLT_HAS_SUBNORM |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
224 #undef DBL_HAS_SUBNORM |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
225 #undef LDBL_HAS_SUBNORM |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
226 #define FLT_HAS_SUBNORM __FLT_HAS_DENORM__ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
227 #define DBL_HAS_SUBNORM __DBL_HAS_DENORM__ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
228 #define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
229 |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
230 /* Minimum positive values, including subnormals. */ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
231 #undef FLT_TRUE_MIN |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
232 #undef DBL_TRUE_MIN |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
233 #undef LDBL_TRUE_MIN |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
234 #define FLT_TRUE_MIN __FLT_DENORM_MIN__ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
235 #define DBL_TRUE_MIN __DBL_DENORM_MIN__ |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
236 #define LDBL_TRUE_MIN __LDBL_DENORM_MIN__ |
111 | 237 |
238 #endif /* C11 */ | |
239 | |
240 #ifdef __STDC_WANT_IEC_60559_BFP_EXT__ | |
241 /* Number of decimal digits for which conversions between decimal | |
242 character strings and binary formats, in both directions, are | |
243 correctly rounded. */ | |
244 #define CR_DECIMAL_DIG __UINTMAX_MAX__ | |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
245 #endif |
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
246 |
111 | 247 #ifdef __STDC_WANT_IEC_60559_TYPES_EXT__ |
248 /* Constants for _FloatN and _FloatNx types from TS 18661-3. See | |
249 comments above for their semantics. */ | |
250 | |
251 #ifdef __FLT16_MANT_DIG__ | |
252 #undef FLT16_MANT_DIG | |
253 #define FLT16_MANT_DIG __FLT16_MANT_DIG__ | |
254 #undef FLT16_DIG | |
255 #define FLT16_DIG __FLT16_DIG__ | |
256 #undef FLT16_MIN_EXP | |
257 #define FLT16_MIN_EXP __FLT16_MIN_EXP__ | |
258 #undef FLT16_MIN_10_EXP | |
259 #define FLT16_MIN_10_EXP __FLT16_MIN_10_EXP__ | |
260 #undef FLT16_MAX_EXP | |
261 #define FLT16_MAX_EXP __FLT16_MAX_EXP__ | |
262 #undef FLT16_MAX_10_EXP | |
263 #define FLT16_MAX_10_EXP __FLT16_MAX_10_EXP__ | |
264 #undef FLT16_MAX | |
265 #define FLT16_MAX __FLT16_MAX__ | |
266 #undef FLT16_EPSILON | |
267 #define FLT16_EPSILON __FLT16_EPSILON__ | |
268 #undef FLT16_MIN | |
269 #define FLT16_MIN __FLT16_MIN__ | |
270 #undef FLT16_DECIMAL_DIG | |
271 #define FLT16_DECIMAL_DIG __FLT16_DECIMAL_DIG__ | |
272 #undef FLT16_TRUE_MIN | |
273 #define FLT16_TRUE_MIN __FLT16_DENORM_MIN__ | |
274 #endif /* __FLT16_MANT_DIG__. */ | |
275 | |
276 #ifdef __FLT32_MANT_DIG__ | |
277 #undef FLT32_MANT_DIG | |
278 #define FLT32_MANT_DIG __FLT32_MANT_DIG__ | |
279 #undef FLT32_DIG | |
280 #define FLT32_DIG __FLT32_DIG__ | |
281 #undef FLT32_MIN_EXP | |
282 #define FLT32_MIN_EXP __FLT32_MIN_EXP__ | |
283 #undef FLT32_MIN_10_EXP | |
284 #define FLT32_MIN_10_EXP __FLT32_MIN_10_EXP__ | |
285 #undef FLT32_MAX_EXP | |
286 #define FLT32_MAX_EXP __FLT32_MAX_EXP__ | |
287 #undef FLT32_MAX_10_EXP | |
288 #define FLT32_MAX_10_EXP __FLT32_MAX_10_EXP__ | |
289 #undef FLT32_MAX | |
290 #define FLT32_MAX __FLT32_MAX__ | |
291 #undef FLT32_EPSILON | |
292 #define FLT32_EPSILON __FLT32_EPSILON__ | |
293 #undef FLT32_MIN | |
294 #define FLT32_MIN __FLT32_MIN__ | |
295 #undef FLT32_DECIMAL_DIG | |
296 #define FLT32_DECIMAL_DIG __FLT32_DECIMAL_DIG__ | |
297 #undef FLT32_TRUE_MIN | |
298 #define FLT32_TRUE_MIN __FLT32_DENORM_MIN__ | |
299 #endif /* __FLT32_MANT_DIG__. */ | |
300 | |
301 #ifdef __FLT64_MANT_DIG__ | |
302 #undef FLT64_MANT_DIG | |
303 #define FLT64_MANT_DIG __FLT64_MANT_DIG__ | |
304 #undef FLT64_DIG | |
305 #define FLT64_DIG __FLT64_DIG__ | |
306 #undef FLT64_MIN_EXP | |
307 #define FLT64_MIN_EXP __FLT64_MIN_EXP__ | |
308 #undef FLT64_MIN_10_EXP | |
309 #define FLT64_MIN_10_EXP __FLT64_MIN_10_EXP__ | |
310 #undef FLT64_MAX_EXP | |
311 #define FLT64_MAX_EXP __FLT64_MAX_EXP__ | |
312 #undef FLT64_MAX_10_EXP | |
313 #define FLT64_MAX_10_EXP __FLT64_MAX_10_EXP__ | |
314 #undef FLT64_MAX | |
315 #define FLT64_MAX __FLT64_MAX__ | |
316 #undef FLT64_EPSILON | |
317 #define FLT64_EPSILON __FLT64_EPSILON__ | |
318 #undef FLT64_MIN | |
319 #define FLT64_MIN __FLT64_MIN__ | |
320 #undef FLT64_DECIMAL_DIG | |
321 #define FLT64_DECIMAL_DIG __FLT64_DECIMAL_DIG__ | |
322 #undef FLT64_TRUE_MIN | |
323 #define FLT64_TRUE_MIN __FLT64_DENORM_MIN__ | |
324 #endif /* __FLT64_MANT_DIG__. */ | |
325 | |
326 #ifdef __FLT128_MANT_DIG__ | |
327 #undef FLT128_MANT_DIG | |
328 #define FLT128_MANT_DIG __FLT128_MANT_DIG__ | |
329 #undef FLT128_DIG | |
330 #define FLT128_DIG __FLT128_DIG__ | |
331 #undef FLT128_MIN_EXP | |
332 #define FLT128_MIN_EXP __FLT128_MIN_EXP__ | |
333 #undef FLT128_MIN_10_EXP | |
334 #define FLT128_MIN_10_EXP __FLT128_MIN_10_EXP__ | |
335 #undef FLT128_MAX_EXP | |
336 #define FLT128_MAX_EXP __FLT128_MAX_EXP__ | |
337 #undef FLT128_MAX_10_EXP | |
338 #define FLT128_MAX_10_EXP __FLT128_MAX_10_EXP__ | |
339 #undef FLT128_MAX | |
340 #define FLT128_MAX __FLT128_MAX__ | |
341 #undef FLT128_EPSILON | |
342 #define FLT128_EPSILON __FLT128_EPSILON__ | |
343 #undef FLT128_MIN | |
344 #define FLT128_MIN __FLT128_MIN__ | |
345 #undef FLT128_DECIMAL_DIG | |
346 #define FLT128_DECIMAL_DIG __FLT128_DECIMAL_DIG__ | |
347 #undef FLT128_TRUE_MIN | |
348 #define FLT128_TRUE_MIN __FLT128_DENORM_MIN__ | |
349 #endif /* __FLT128_MANT_DIG__. */ | |
350 | |
351 #ifdef __FLT32X_MANT_DIG__ | |
352 #undef FLT32X_MANT_DIG | |
353 #define FLT32X_MANT_DIG __FLT32X_MANT_DIG__ | |
354 #undef FLT32X_DIG | |
355 #define FLT32X_DIG __FLT32X_DIG__ | |
356 #undef FLT32X_MIN_EXP | |
357 #define FLT32X_MIN_EXP __FLT32X_MIN_EXP__ | |
358 #undef FLT32X_MIN_10_EXP | |
359 #define FLT32X_MIN_10_EXP __FLT32X_MIN_10_EXP__ | |
360 #undef FLT32X_MAX_EXP | |
361 #define FLT32X_MAX_EXP __FLT32X_MAX_EXP__ | |
362 #undef FLT32X_MAX_10_EXP | |
363 #define FLT32X_MAX_10_EXP __FLT32X_MAX_10_EXP__ | |
364 #undef FLT32X_MAX | |
365 #define FLT32X_MAX __FLT32X_MAX__ | |
366 #undef FLT32X_EPSILON | |
367 #define FLT32X_EPSILON __FLT32X_EPSILON__ | |
368 #undef FLT32X_MIN | |
369 #define FLT32X_MIN __FLT32X_MIN__ | |
370 #undef FLT32X_DECIMAL_DIG | |
371 #define FLT32X_DECIMAL_DIG __FLT32X_DECIMAL_DIG__ | |
372 #undef FLT32X_TRUE_MIN | |
373 #define FLT32X_TRUE_MIN __FLT32X_DENORM_MIN__ | |
374 #endif /* __FLT32X_MANT_DIG__. */ | |
375 | |
376 #ifdef __FLT64X_MANT_DIG__ | |
377 #undef FLT64X_MANT_DIG | |
378 #define FLT64X_MANT_DIG __FLT64X_MANT_DIG__ | |
379 #undef FLT64X_DIG | |
380 #define FLT64X_DIG __FLT64X_DIG__ | |
381 #undef FLT64X_MIN_EXP | |
382 #define FLT64X_MIN_EXP __FLT64X_MIN_EXP__ | |
383 #undef FLT64X_MIN_10_EXP | |
384 #define FLT64X_MIN_10_EXP __FLT64X_MIN_10_EXP__ | |
385 #undef FLT64X_MAX_EXP | |
386 #define FLT64X_MAX_EXP __FLT64X_MAX_EXP__ | |
387 #undef FLT64X_MAX_10_EXP | |
388 #define FLT64X_MAX_10_EXP __FLT64X_MAX_10_EXP__ | |
389 #undef FLT64X_MAX | |
390 #define FLT64X_MAX __FLT64X_MAX__ | |
391 #undef FLT64X_EPSILON | |
392 #define FLT64X_EPSILON __FLT64X_EPSILON__ | |
393 #undef FLT64X_MIN | |
394 #define FLT64X_MIN __FLT64X_MIN__ | |
395 #undef FLT64X_DECIMAL_DIG | |
396 #define FLT64X_DECIMAL_DIG __FLT64X_DECIMAL_DIG__ | |
397 #undef FLT64X_TRUE_MIN | |
398 #define FLT64X_TRUE_MIN __FLT64X_DENORM_MIN__ | |
399 #endif /* __FLT64X_MANT_DIG__. */ | |
400 | |
401 #ifdef __FLT128X_MANT_DIG__ | |
402 #undef FLT128X_MANT_DIG | |
403 #define FLT128X_MANT_DIG __FLT128X_MANT_DIG__ | |
404 #undef FLT128X_DIG | |
405 #define FLT128X_DIG __FLT128X_DIG__ | |
406 #undef FLT128X_MIN_EXP | |
407 #define FLT128X_MIN_EXP __FLT128X_MIN_EXP__ | |
408 #undef FLT128X_MIN_10_EXP | |
409 #define FLT128X_MIN_10_EXP __FLT128X_MIN_10_EXP__ | |
410 #undef FLT128X_MAX_EXP | |
411 #define FLT128X_MAX_EXP __FLT128X_MAX_EXP__ | |
412 #undef FLT128X_MAX_10_EXP | |
413 #define FLT128X_MAX_10_EXP __FLT128X_MAX_10_EXP__ | |
414 #undef FLT128X_MAX | |
415 #define FLT128X_MAX __FLT128X_MAX__ | |
416 #undef FLT128X_EPSILON | |
417 #define FLT128X_EPSILON __FLT128X_EPSILON__ | |
418 #undef FLT128X_MIN | |
419 #define FLT128X_MIN __FLT128X_MIN__ | |
420 #undef FLT128X_DECIMAL_DIG | |
421 #define FLT128X_DECIMAL_DIG __FLT128X_DECIMAL_DIG__ | |
422 #undef FLT128X_TRUE_MIN | |
423 #define FLT128X_TRUE_MIN __FLT128X_DENORM_MIN__ | |
424 #endif /* __FLT128X_MANT_DIG__. */ | |
425 | |
426 #endif /* __STDC_WANT_IEC_60559_TYPES_EXT__. */ | |
63
b7f97abdc517
update gcc from gcc-4.5.0 to gcc-4.6
ryoma <e075725@ie.u-ryukyu.ac.jp>
parents:
0
diff
changeset
|
427 |
0 | 428 #ifdef __STDC_WANT_DEC_FP__ |
429 /* Draft Technical Report 24732, extension for decimal floating-point | |
430 arithmetic: Characteristic of decimal floating types <float.h>. */ | |
431 | |
432 /* Number of base-FLT_RADIX digits in the significand, p. */ | |
433 #undef DEC32_MANT_DIG | |
434 #undef DEC64_MANT_DIG | |
435 #undef DEC128_MANT_DIG | |
436 #define DEC32_MANT_DIG __DEC32_MANT_DIG__ | |
437 #define DEC64_MANT_DIG __DEC64_MANT_DIG__ | |
438 #define DEC128_MANT_DIG __DEC128_MANT_DIG__ | |
439 | |
440 /* Minimum exponent. */ | |
441 #undef DEC32_MIN_EXP | |
442 #undef DEC64_MIN_EXP | |
443 #undef DEC128_MIN_EXP | |
444 #define DEC32_MIN_EXP __DEC32_MIN_EXP__ | |
445 #define DEC64_MIN_EXP __DEC64_MIN_EXP__ | |
446 #define DEC128_MIN_EXP __DEC128_MIN_EXP__ | |
447 | |
448 /* Maximum exponent. */ | |
449 #undef DEC32_MAX_EXP | |
450 #undef DEC64_MAX_EXP | |
451 #undef DEC128_MAX_EXP | |
452 #define DEC32_MAX_EXP __DEC32_MAX_EXP__ | |
453 #define DEC64_MAX_EXP __DEC64_MAX_EXP__ | |
454 #define DEC128_MAX_EXP __DEC128_MAX_EXP__ | |
455 | |
456 /* Maximum representable finite decimal floating-point number | |
457 (there are 6, 15, and 33 9s after the decimal points respectively). */ | |
458 #undef DEC32_MAX | |
459 #undef DEC64_MAX | |
460 #undef DEC128_MAX | |
461 #define DEC32_MAX __DEC32_MAX__ | |
462 #define DEC64_MAX __DEC64_MAX__ | |
463 #define DEC128_MAX __DEC128_MAX__ | |
464 | |
465 /* The difference between 1 and the least value greater than 1 that is | |
466 representable in the given floating point type. */ | |
467 #undef DEC32_EPSILON | |
468 #undef DEC64_EPSILON | |
469 #undef DEC128_EPSILON | |
470 #define DEC32_EPSILON __DEC32_EPSILON__ | |
471 #define DEC64_EPSILON __DEC64_EPSILON__ | |
472 #define DEC128_EPSILON __DEC128_EPSILON__ | |
473 | |
474 /* Minimum normalized positive floating-point number. */ | |
475 #undef DEC32_MIN | |
476 #undef DEC64_MIN | |
477 #undef DEC128_MIN | |
478 #define DEC32_MIN __DEC32_MIN__ | |
479 #define DEC64_MIN __DEC64_MIN__ | |
480 #define DEC128_MIN __DEC128_MIN__ | |
481 | |
482 /* Minimum subnormal positive floating-point number. */ | |
483 #undef DEC32_SUBNORMAL_MIN | |
484 #undef DEC64_SUBNORMAL_MIN | |
485 #undef DEC128_SUBNORMAL_MIN | |
486 #define DEC32_SUBNORMAL_MIN __DEC32_SUBNORMAL_MIN__ | |
487 #define DEC64_SUBNORMAL_MIN __DEC64_SUBNORMAL_MIN__ | |
488 #define DEC128_SUBNORMAL_MIN __DEC128_SUBNORMAL_MIN__ | |
489 | |
490 /* The floating-point expression evaluation method. | |
491 -1 indeterminate | |
492 0 evaluate all operations and constants just to the range and | |
493 precision of the type | |
494 1 evaluate operations and constants of type _Decimal32 | |
495 and _Decimal64 to the range and precision of the _Decimal64 | |
496 type, evaluate _Decimal128 operations and constants to the | |
497 range and precision of the _Decimal128 type; | |
498 2 evaluate all operations and constants to the range and | |
499 precision of the _Decimal128 type. */ | |
500 | |
501 #undef DEC_EVAL_METHOD | |
502 #define DEC_EVAL_METHOD __DEC_EVAL_METHOD__ | |
503 | |
504 #endif /* __STDC_WANT_DEC_FP__ */ | |
505 | |
506 #endif /* _FLOAT_H___ */ |