packaging: remove nis/ nss
[platform/upstream/glibc.git] / include / float.h
1 #ifndef _LIBC_FLOAT_H
2 #define _LIBC_FLOAT_H
3
4 #define __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION
5 #include <bits/libc-header-start.h>
6
7 /* Some tests also define this macro, requiring a check here to avoid
8    errors for duplicate definitions (see GCC bug 91451).  */
9 #if !defined _ISOMAC && !defined __STDC_WANT_IEC_60559_TYPES_EXT__
10 # define __STDC_WANT_IEC_60559_TYPES_EXT__
11 #endif
12
13 #include_next <float.h>
14
15 /* Supplement float.h macros for _FloatN and _FloatNx for older
16    compilers which do not yet support the type.  These are described
17    in TS 18661-3.  */
18 #include <features.h>
19 #include <bits/floatn.h>
20 #if !__GNUC_PREREQ (7, 0) && __GLIBC_USE (IEC_60559_TYPES_EXT)
21
22 # if __HAVE_FLOAT128
23 #  define FLT128_MANT_DIG       113
24 #  define FLT128_DECIMAL_DIG    36
25 #  define FLT128_DIG            33
26 #  define FLT128_MIN_EXP        (-16381)
27 #  define FLT128_MIN_10_EXP     (-4931)
28 #  define FLT128_MAX_EXP        16384
29 #  define FLT128_MAX_10_EXP     4932
30 #  define FLT128_MAX                                    \
31   __f128 (1.18973149535723176508575932662800702e+4932)
32 #  define FLT128_EPSILON                                \
33   __f128 (1.92592994438723585305597794258492732e-34)
34 #  define FLT128_MIN                                    \
35   __f128 (3.36210314311209350626267781732175260e-4932)
36 #  define FLT128_TRUE_MIN                               \
37   __f128 (6.47517511943802511092443895822764655e-4966)
38 # endif
39
40 /* Types other than _Float128 are typedefs for other types with old
41    compilers.  */
42
43 # if __HAVE_FLOAT32
44 #  define FLT32_MANT_DIG        FLT_MANT_DIG
45 #  define FLT32_DECIMAL_DIG     FLT_DECIMAL_DIG
46 #  define FLT32_DIG             FLT_DIG
47 #  define FLT32_MIN_EXP         FLT_MIN_EXP
48 #  define FLT32_MIN_10_EXP      FLT_MIN_10_EXP
49 #  define FLT32_MAX_EXP         FLT_MAX_EXP
50 #  define FLT32_MAX_10_EXP      FLT_MAX_10_EXP
51 #  define FLT32_MAX             FLT_MAX
52 #  define FLT32_EPSILON         FLT_EPSILON
53 #  define FLT32_MIN             FLT_MIN
54 #  define FLT32_TRUE_MIN        FLT_TRUE_MIN
55 # endif
56
57 # if __HAVE_FLOAT64
58 #  define FLT64_MANT_DIG        DBL_MANT_DIG
59 #  define FLT64_DECIMAL_DIG     DBL_DECIMAL_DIG
60 #  define FLT64_DIG             DBL_DIG
61 #  define FLT64_MIN_EXP         DBL_MIN_EXP
62 #  define FLT64_MIN_10_EXP      DBL_MIN_10_EXP
63 #  define FLT64_MAX_EXP         DBL_MAX_EXP
64 #  define FLT64_MAX_10_EXP      DBL_MAX_10_EXP
65 #  define FLT64_MAX             DBL_MAX
66 #  define FLT64_EPSILON         DBL_EPSILON
67 #  define FLT64_MIN             DBL_MIN
68 #  define FLT64_TRUE_MIN        DBL_TRUE_MIN
69 # endif
70
71 # if __HAVE_FLOAT32X
72 #  define FLT32X_MANT_DIG       DBL_MANT_DIG
73 #  define FLT32X_DECIMAL_DIG    DBL_DECIMAL_DIG
74 #  define FLT32X_DIG            DBL_DIG
75 #  define FLT32X_MIN_EXP        DBL_MIN_EXP
76 #  define FLT32X_MIN_10_EXP     DBL_MIN_10_EXP
77 #  define FLT32X_MAX_EXP        DBL_MAX_EXP
78 #  define FLT32X_MAX_10_EXP     DBL_MAX_10_EXP
79 #  define FLT32X_MAX            DBL_MAX
80 #  define FLT32X_EPSILON        DBL_EPSILON
81 #  define FLT32X_MIN            DBL_MIN
82 #  define FLT32X_TRUE_MIN       DBL_TRUE_MIN
83 # endif
84
85 # if __HAVE_FLOAT64X
86 #  if __HAVE_FLOAT64X_LONG_DOUBLE
87 #   define FLT64X_MANT_DIG      LDBL_MANT_DIG
88 #   define FLT64X_DECIMAL_DIG   LDBL_DECIMAL_DIG
89 #   define FLT64X_DIG           LDBL_DIG
90 #   define FLT64X_MIN_EXP       LDBL_MIN_EXP
91 #   define FLT64X_MIN_10_EXP    LDBL_MIN_10_EXP
92 #   define FLT64X_MAX_EXP       LDBL_MAX_EXP
93 #   define FLT64X_MAX_10_EXP    LDBL_MAX_10_EXP
94 #   define FLT64X_MAX           LDBL_MAX
95 #   define FLT64X_EPSILON       LDBL_EPSILON
96 #   define FLT64X_MIN           LDBL_MIN
97 #   define FLT64X_TRUE_MIN      LDBL_TRUE_MIN
98 #  else
99 #   define FLT64X_MANT_DIG      FLT128_MANT_DIG
100 #   define FLT64X_DECIMAL_DIG   FLT128_DECIMAL_DIG
101 #   define FLT64X_DIG           FLT128_DIG
102 #   define FLT64X_MIN_EXP       FLT128_MIN_EXP
103 #   define FLT64X_MIN_10_EXP    FLT128_MIN_10_EXP
104 #   define FLT64X_MAX_EXP       FLT128_MAX_EXP
105 #   define FLT64X_MAX_10_EXP    FLT128_MAX_10_EXP
106 #   define FLT64X_MAX           FLT128_MAX
107 #   define FLT64X_EPSILON       FLT128_EPSILON
108 #   define FLT64X_MIN           FLT128_MIN
109 #   define FLT64X_TRUE_MIN      FLT128_TRUE_MIN
110 #  endif
111 # endif
112
113 #endif
114
115 #endif /* _LIBC_FLOAT_H */