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