1 /* Copyright (C) 2005 Free Software Foundation, Inc. 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 2, 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 You should have received a copy of the GNU General Public License 16 along with GCC; see the file COPYING. If not, write to 17 the Free Software Foundation, 51 Franklin Street, Fifth Floor, 18 Boston, MA 02110-1301, USA. */ 19 20 /* As a special exception, if you include this header file into source 21 files compiled by GCC, this header file does not by itself cause 22 the resulting executable to be covered by the GNU General Public 23 License. This exception does not however invalidate any other 24 reasons why the executable file might be covered by the GNU General 25 Public License. */ 26 27 /* 28 * Draft C Extension to support decimal floating-pointing arithmetic: 29 * Characteristics of decimal floating types <decfloat.h> 30 */ 31 32 #ifndef _DECFLOAT_H___ 33 #define _DECFLOAT_H___ 34 35 /* Number of base-FLT_RADIX digits in the significand, p. */ 36 #undef DEC32_MANT_DIG 37 #undef DEC64_MANT_DIG 38 #undef DEC128_MANT_DIG 39 #define DEC32_MANT_DIG __DEC32_MANT_DIG__ 40 #define DEC64_MANT_DIG __DEC64_MANT_DIG__ 41 #define DEC128_MANT_DIG __DEC128_MANT_DIG__ 42 43 /* Minimum exponent. */ 44 #undef DEC32_MIN_EXP 45 #undef DEC64_MIN_EXP 46 #undef DEC128_MIN_EXP 47 #define DEC32_MIN_EXP __DEC32_MIN_EXP__ 48 #define DEC64_MIN_EXP __DEC64_MIN_EXP__ 49 #define DEC128_MIN_EXP __DEC128_MIN_EXP__ 50 51 /* Maximum exponent. */ 52 #undef DEC32_MAX_EXP 53 #undef DEC64_MAX_EXP 54 #undef DEC128_MAX_EXP 55 #define DEC32_MAX_EXP __DEC32_MAX_EXP__ 56 #define DEC64_MAX_EXP __DEC64_MAX_EXP__ 57 #define DEC128_MAX_EXP __DEC128_MAX_EXP__ 58 59 /* Maximum representable finite decimal floating-point number 60 (there are 6, 15, and 33 9s after the decimal points respectively). */ 61 #undef DEC32_MAX 62 #undef DEC64_MAX 63 #undef DEC128_MAX 64 #define DEC32_MAX __DEC32_MAX__ 65 #define DEC64_MAX __DEC64_MAX__ 66 #define DEC128_MAX __DEC128_MAX__ 67 68 /* The difference between 1 and the least value greater than 1 that is 69 representable in the given floating point type. */ 70 #undef DEC32_EPSILON 71 #undef DEC64_EPSILON 72 #undef DEC128_EPSILON 73 #define DEC32_EPSILON __DEC32_EPSILON__ 74 #define DEC64_EPSILON __DEC64_EPSILON__ 75 #define DEC128_EPSILON __DEC128_EPSILON__ 76 77 /* Minimum normalized positive floating-point number. */ 78 #undef DEC32_MIN 79 #undef DEC64_MIN 80 #undef DEC128_MIN 81 #define DEC32_MIN __DEC32_MIN__ 82 #define DEC64_MIN __DEC64_MIN__ 83 #define DEC128_MIN __DEC128_MIN__ 84 85 /* Minimum denormalized positive floating-point number. */ 86 #undef DEC32_DEN 87 #undef DEC64_DEN 88 #undef DEC128_DEN 89 #define DEC32_DEN __DEC32_DEN__ 90 #define DEC64_DEN __DEC64_DEN__ 91 #define DEC128_DEN __DEC128_DEN__ 92 93 /* The floating-point expression evaluation method. 94 -1 indeterminate 95 0 evaluate all operations and constants just to the range and 96 precision of the type 97 1 evaluate operations and constants of type _Decimal32 98 and _Decimal64 to the range and precision of the _Decimal64 99 type, evaluate _Decimal128 operations and constants to the 100 range and precision of the _Decimal128 type; 101 2 evaluate all operations and constants to the range and 102 precision of the _Decimal128 type. 103 */ 104 105 #undef DECFLT_EVAL_METHOD 106 #define DECFLT_EVAL_METHOD __DECFLT_EVAL_METHOD__ 107 108 #endif /* _DECFLOAT_H___ */ 109