1//===-- Definition of macros from float.h ---------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLVM_LIBC_MACROS_FLOAT_MACROS_H
10#define LLVM_LIBC_MACROS_FLOAT_MACROS_H
11
12// Suppress `#include_next is a language extension` warnings.
13#ifdef __clang__
14#pragma clang diagnostic push
15#pragma clang diagnostic ignored "-Wgnu-include-next"
16#pragma clang diagnostic ignored "-Winclude-next-absolute-path"
17#else // gcc
18#pragma GCC system_header
19#endif //__clang__
20
21#include_next <float.h>
22
23#ifdef __clang__
24#pragma clang diagnostic pop
25#endif //__clang__
26
27#ifndef FLT_RADIX
28#define FLT_RADIX __FLT_RADIX__
29#endif // FLT_RADIX
30
31#ifndef FLT_EVAL_METHOD
32#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
33#endif // FLT_EVAL_METHOD
34
35#ifndef DECIMAL_DIG
36#define DECIMAL_DIG __DECIMAL_DIG__
37#endif // DECIMAL_DIG
38
39#ifndef FLT_DECIMAL_DIG
40#define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
41#endif // FLT_DECIMAL_DIG
42
43#ifndef DBL_DECIMAL_DIG
44#define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
45#endif // DBL_DECIMAL_DIG
46
47#ifndef LDBL_DECIMAL_DIG
48#define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
49#endif // LDBL_DECIMAL_DIG
50
51#ifndef FLT_DIG
52#define FLT_DIG __FLT_DIG__
53#endif // FLT_DIG
54
55#ifndef DBL_DIG
56#define DBL_DIG __DBL_DIG__
57#endif // DBL_DIG
58
59#ifndef LDBL_DIG
60#define LDBL_DIG __LDBL_DIG__
61#endif // LDBL_DIG
62
63#ifndef FLT_MANT_DIG
64#define FLT_MANT_DIG __FLT_MANT_DIG__
65#endif // FLT_MANT_DIG
66
67#ifndef DBL_MANT_DIG
68#define DBL_MANT_DIG __DBL_MANT_DIG__
69#endif // DBL_MANT_DIG
70
71#ifndef LDBL_MANT_DIG
72#define LDBL_MANT_DIG __LDBL_MANT_DIG__
73#endif // LDBL_MANT_DIG
74
75#ifndef FLT_MIN
76#define FLT_MIN __FLT_MIN__
77#endif // FLT_MIN
78
79#ifndef DBL_MIN
80#define DBL_MIN __DBL_MIN__
81#endif // DBL_MIN
82
83#ifndef LDBL_MIN
84#define LDBL_MIN __LDBL_MIN__
85#endif // LDBL_MIN
86
87#ifndef FLT_MAX
88#define FLT_MAX __FLT_MAX__
89#endif // FLT_MAX
90
91#ifndef DBL_MAX
92#define DBL_MAX __DBL_MAX__
93#endif // DBL_MAX
94
95#ifndef LDBL_MAX
96#define LDBL_MAX __LDBL_MAX__
97#endif // LDBL_MAX
98
99#ifndef FLT_TRUE_MIN
100#define FLT_TRUE_MIN __FLT_TRUE_MIN__
101#endif // FLT_TRUE_MIN
102
103#ifndef DBL_TRUE_MIN
104#define DBL_TRUE_MIN __DBL_TRUE_MIN__
105#endif // DBL_TRUE_MIN
106
107#ifndef LDBL_TRUE_MIN
108#define LDBL_TRUE_MIN __LDBL_TRUE_MIN__
109#endif // LDBL_TRUE_MIN
110
111#ifndef FLT_EPSILON
112#define FLT_EPSILON __FLT_EPSILON__
113#endif // FLT_EPSILON
114
115#ifndef DBL_EPSILON
116#define DBL_EPSILON __DBL_EPSILON__
117#endif // DBL_EPSILON
118
119#ifndef LDBL_EPSILON
120#define LDBL_EPSILON __LDBL_EPSILON__
121#endif // LDBL_EPSILON
122
123#ifndef FLT_MIN_EXP
124#define FLT_MIN_EXP __FLT_MIN_EXP__
125#endif // FLT_MIN_EXP
126
127#ifndef DBL_MIN_EXP
128#define DBL_MIN_EXP __DBL_MIN_EXP__
129#endif // DBL_MIN_EXP
130
131#ifndef LDBL_MIN_EXP
132#define LDBL_MIN_EXP __LDBL_MIN_EXP__
133#endif // LDBL_MIN_EXP
134
135#ifndef FLT_MIN_10_EXP
136#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
137#endif // FLT_MIN_10_EXP
138
139#ifndef DBL_MIN_10_EXP
140#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
141#endif // DBL_MIN_10_EXP
142
143#ifndef LDBL_MIN_10_EXP
144#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
145#endif // LDBL_MIN_10_EXP
146
147#ifndef FLT_MAX_EXP
148#define FLT_MAX_EXP __FLT_MAX_EXP__
149#endif // FLT_MAX_EXP
150
151#ifndef DBL_MAX_EXP
152#define DBL_MAX_EXP __DBL_MAX_EXP__
153#endif // DBL_MAX_EXP
154
155#ifndef LDBL_MAX_EXP
156#define LDBL_MAX_EXP __LDBL_MAX_EXP__
157#endif // LDBL_MAX_EXP
158
159#ifndef FLT_MAX_10_EXP
160#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
161#endif // FLT_MAX_10_EXP
162
163#ifndef DBL_MAX_10_EXP
164#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
165#endif // DBL_MAX_10_EXP
166
167#ifndef LDBL_MAX_10_EXP
168#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
169#endif // LDBL_MAX_10_EXP
170
171// TODO: Add FLT16 and FLT128 constants.
172
173#endif // LLVM_LIBC_MACROS_FLOAT_MACROS_H
174

source code of libc/include/llvm-libc-macros/float-macros.h