Home | History | Annotate | Download | only in include
      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