Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/libc/include/llvm-libc-macros/float-macros.h
213766 views
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
#ifndef FLT_RADIX
13
#define FLT_RADIX __FLT_RADIX__
14
#endif // FLT_RADIX
15
16
#ifndef FLT_EVAL_METHOD
17
#define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
18
#endif // FLT_EVAL_METHOD
19
20
#ifndef FLT_ROUNDS
21
#if __has_builtin(__builtin_flt_rounds)
22
#define FLT_ROUNDS __builtin_flt_rounds()
23
#else
24
#define FLT_ROUNDS 1
25
#endif
26
#endif // FLT_ROUNDS
27
28
#ifndef FLT_DECIMAL_DIG
29
#define FLT_DECIMAL_DIG __FLT_DECIMAL_DIG__
30
#endif // FLT_DECIMAL_DIG
31
32
#ifndef DBL_DECIMAL_DIG
33
#define DBL_DECIMAL_DIG __DBL_DECIMAL_DIG__
34
#endif // DBL_DECIMAL_DIG
35
36
#ifndef LDBL_DECIMAL_DIG
37
#define LDBL_DECIMAL_DIG __LDBL_DECIMAL_DIG__
38
#endif // LDBL_DECIMAL_DIG
39
40
#ifndef DECIMAL_DIG
41
#define DECIMAL_DIG __DECIMAL_DIG__
42
#endif // DECIMAL_DIG
43
44
#ifndef FLT_DIG
45
#define FLT_DIG __FLT_DIG__
46
#endif // FLT_DIG
47
48
#ifndef DBL_DIG
49
#define DBL_DIG __DBL_DIG__
50
#endif // DBL_DIG
51
52
#ifndef LDBL_DIG
53
#define LDBL_DIG __LDBL_DIG__
54
#endif // LDBL_DIG
55
56
#ifndef FLT_MANT_DIG
57
#define FLT_MANT_DIG __FLT_MANT_DIG__
58
#endif // FLT_MANT_DIG
59
60
#ifndef DBL_MANT_DIG
61
#define DBL_MANT_DIG __DBL_MANT_DIG__
62
#endif // DBL_MANT_DIG
63
64
// Kludge for gcc defining LDBL_MANT_DIG as 53 on i386
65
#if defined(LDBL_MANT_DIG) && defined(__GNUC__) && !defined(__clang__) && defined(__i386__)
66
#undef LDBL_MANT_DIG
67
#endif
68
69
#ifndef LDBL_MANT_DIG
70
#define LDBL_MANT_DIG __LDBL_MANT_DIG__
71
#endif // LDBL_MANT_DIG
72
73
#ifndef FLT_MIN
74
#define FLT_MIN __FLT_MIN__
75
#endif // FLT_MIN
76
77
#ifndef DBL_MIN
78
#define DBL_MIN __DBL_MIN__
79
#endif // DBL_MIN
80
81
#ifndef LDBL_MIN
82
#define LDBL_MIN __LDBL_MIN__
83
#endif // LDBL_MIN
84
85
#ifndef FLT_MAX
86
#define FLT_MAX __FLT_MAX__
87
#endif // FLT_MAX
88
89
#ifndef DBL_MAX
90
#define DBL_MAX __DBL_MAX__
91
#endif // DBL_MAX
92
93
#ifndef LDBL_MAX
94
#define LDBL_MAX __LDBL_MAX__
95
#endif // LDBL_MAX
96
97
#ifndef FLT_TRUE_MIN
98
#define FLT_TRUE_MIN __FLT_DENORM_MIN__
99
#endif // FLT_TRUE_MIN
100
101
#ifndef DBL_TRUE_MIN
102
#define DBL_TRUE_MIN __DBL_DENORM_MIN__
103
#endif // DBL_TRUE_MIN
104
105
#ifndef LDBL_TRUE_MIN
106
#define LDBL_TRUE_MIN __LDBL_DENORM_MIN__
107
#endif // LDBL_TRUE_MIN
108
109
#ifndef FLT_EPSILON
110
#define FLT_EPSILON __FLT_EPSILON__
111
#endif // FLT_EPSILON
112
113
#ifndef DBL_EPSILON
114
#define DBL_EPSILON __DBL_EPSILON__
115
#endif // DBL_EPSILON
116
117
#ifndef LDBL_EPSILON
118
#define LDBL_EPSILON __LDBL_EPSILON__
119
#endif // LDBL_EPSILON
120
121
#ifndef FLT_MIN_EXP
122
#define FLT_MIN_EXP __FLT_MIN_EXP__
123
#endif // FLT_MIN_EXP
124
125
#ifndef DBL_MIN_EXP
126
#define DBL_MIN_EXP __DBL_MIN_EXP__
127
#endif // DBL_MIN_EXP
128
129
#ifndef LDBL_MIN_EXP
130
#define LDBL_MIN_EXP __LDBL_MIN_EXP__
131
#endif // LDBL_MIN_EXP
132
133
#ifndef FLT_MIN_10_EXP
134
#define FLT_MIN_10_EXP __FLT_MIN_10_EXP__
135
#endif // FLT_MIN_10_EXP
136
137
#ifndef DBL_MIN_10_EXP
138
#define DBL_MIN_10_EXP __DBL_MIN_10_EXP__
139
#endif // DBL_MIN_10_EXP
140
141
#ifndef LDBL_MIN_10_EXP
142
#define LDBL_MIN_10_EXP __LDBL_MIN_10_EXP__
143
#endif // LDBL_MIN_10_EXP
144
145
#ifndef FLT_MAX_EXP
146
#define FLT_MAX_EXP __FLT_MAX_EXP__
147
#endif // FLT_MAX_EXP
148
149
#ifndef DBL_MAX_EXP
150
#define DBL_MAX_EXP __DBL_MAX_EXP__
151
#endif // DBL_MAX_EXP
152
153
#ifndef LDBL_MAX_EXP
154
#define LDBL_MAX_EXP __LDBL_MAX_EXP__
155
#endif // LDBL_MAX_EXP
156
157
#ifndef FLT_MAX_10_EXP
158
#define FLT_MAX_10_EXP __FLT_MAX_10_EXP__
159
#endif // FLT_MAX_10_EXP
160
161
#ifndef DBL_MAX_10_EXP
162
#define DBL_MAX_10_EXP __DBL_MAX_10_EXP__
163
#endif // DBL_MAX_10_EXP
164
165
#ifndef LDBL_MAX_10_EXP
166
#define LDBL_MAX_10_EXP __LDBL_MAX_10_EXP__
167
#endif // LDBL_MAX_10_EXP
168
169
#ifndef FLT_HAS_SUBNORM
170
#define FLT_HAS_SUBNORM __FLT_HAS_DENORM__
171
#endif // FLT_HAS_SUBNORM
172
173
#ifndef DBL_HAS_SUBNORM
174
#define DBL_HAS_SUBNORM __DBL_HAS_DENORM__
175
#endif // DBL_HAS_SUBNORM
176
177
#ifndef LDBL_HAS_SUBNORM
178
#define LDBL_HAS_SUBNORM __LDBL_HAS_DENORM__
179
#endif // LDBL_HAS_SUBNORM
180
181
// TODO: Add FLT16 and FLT128 constants.
182
183
#endif // LLVM_LIBC_MACROS_FLOAT_MACROS_H
184
185