1*58b9f456SAndroid Build Coastguard Worker // -*- C++ -*-
2*58b9f456SAndroid Build Coastguard Worker //===---------------------------- math.h ----------------------------------===//
3*58b9f456SAndroid Build Coastguard Worker //
4*58b9f456SAndroid Build Coastguard Worker // The LLVM Compiler Infrastructure
5*58b9f456SAndroid Build Coastguard Worker //
6*58b9f456SAndroid Build Coastguard Worker // This file is dual licensed under the MIT and the University of Illinois Open
7*58b9f456SAndroid Build Coastguard Worker // Source Licenses. See LICENSE.TXT for details.
8*58b9f456SAndroid Build Coastguard Worker //
9*58b9f456SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
10*58b9f456SAndroid Build Coastguard Worker
11*58b9f456SAndroid Build Coastguard Worker #ifndef _LIBCPP_MATH_H
12*58b9f456SAndroid Build Coastguard Worker #define _LIBCPP_MATH_H
13*58b9f456SAndroid Build Coastguard Worker
14*58b9f456SAndroid Build Coastguard Worker /*
15*58b9f456SAndroid Build Coastguard Worker math.h synopsis
16*58b9f456SAndroid Build Coastguard Worker
17*58b9f456SAndroid Build Coastguard Worker Macros:
18*58b9f456SAndroid Build Coastguard Worker
19*58b9f456SAndroid Build Coastguard Worker HUGE_VAL
20*58b9f456SAndroid Build Coastguard Worker HUGE_VALF // C99
21*58b9f456SAndroid Build Coastguard Worker HUGE_VALL // C99
22*58b9f456SAndroid Build Coastguard Worker INFINITY // C99
23*58b9f456SAndroid Build Coastguard Worker NAN // C99
24*58b9f456SAndroid Build Coastguard Worker FP_INFINITE // C99
25*58b9f456SAndroid Build Coastguard Worker FP_NAN // C99
26*58b9f456SAndroid Build Coastguard Worker FP_NORMAL // C99
27*58b9f456SAndroid Build Coastguard Worker FP_SUBNORMAL // C99
28*58b9f456SAndroid Build Coastguard Worker FP_ZERO // C99
29*58b9f456SAndroid Build Coastguard Worker FP_FAST_FMA // C99
30*58b9f456SAndroid Build Coastguard Worker FP_FAST_FMAF // C99
31*58b9f456SAndroid Build Coastguard Worker FP_FAST_FMAL // C99
32*58b9f456SAndroid Build Coastguard Worker FP_ILOGB0 // C99
33*58b9f456SAndroid Build Coastguard Worker FP_ILOGBNAN // C99
34*58b9f456SAndroid Build Coastguard Worker MATH_ERRNO // C99
35*58b9f456SAndroid Build Coastguard Worker MATH_ERREXCEPT // C99
36*58b9f456SAndroid Build Coastguard Worker math_errhandling // C99
37*58b9f456SAndroid Build Coastguard Worker
38*58b9f456SAndroid Build Coastguard Worker Types:
39*58b9f456SAndroid Build Coastguard Worker
40*58b9f456SAndroid Build Coastguard Worker float_t // C99
41*58b9f456SAndroid Build Coastguard Worker double_t // C99
42*58b9f456SAndroid Build Coastguard Worker
43*58b9f456SAndroid Build Coastguard Worker // C90
44*58b9f456SAndroid Build Coastguard Worker
45*58b9f456SAndroid Build Coastguard Worker floating_point abs(floating_point x);
46*58b9f456SAndroid Build Coastguard Worker
47*58b9f456SAndroid Build Coastguard Worker floating_point acos (arithmetic x);
48*58b9f456SAndroid Build Coastguard Worker float acosf(float x);
49*58b9f456SAndroid Build Coastguard Worker long double acosl(long double x);
50*58b9f456SAndroid Build Coastguard Worker
51*58b9f456SAndroid Build Coastguard Worker floating_point asin (arithmetic x);
52*58b9f456SAndroid Build Coastguard Worker float asinf(float x);
53*58b9f456SAndroid Build Coastguard Worker long double asinl(long double x);
54*58b9f456SAndroid Build Coastguard Worker
55*58b9f456SAndroid Build Coastguard Worker floating_point atan (arithmetic x);
56*58b9f456SAndroid Build Coastguard Worker float atanf(float x);
57*58b9f456SAndroid Build Coastguard Worker long double atanl(long double x);
58*58b9f456SAndroid Build Coastguard Worker
59*58b9f456SAndroid Build Coastguard Worker floating_point atan2 (arithmetic y, arithmetic x);
60*58b9f456SAndroid Build Coastguard Worker float atan2f(float y, float x);
61*58b9f456SAndroid Build Coastguard Worker long double atan2l(long double y, long double x);
62*58b9f456SAndroid Build Coastguard Worker
63*58b9f456SAndroid Build Coastguard Worker floating_point ceil (arithmetic x);
64*58b9f456SAndroid Build Coastguard Worker float ceilf(float x);
65*58b9f456SAndroid Build Coastguard Worker long double ceill(long double x);
66*58b9f456SAndroid Build Coastguard Worker
67*58b9f456SAndroid Build Coastguard Worker floating_point cos (arithmetic x);
68*58b9f456SAndroid Build Coastguard Worker float cosf(float x);
69*58b9f456SAndroid Build Coastguard Worker long double cosl(long double x);
70*58b9f456SAndroid Build Coastguard Worker
71*58b9f456SAndroid Build Coastguard Worker floating_point cosh (arithmetic x);
72*58b9f456SAndroid Build Coastguard Worker float coshf(float x);
73*58b9f456SAndroid Build Coastguard Worker long double coshl(long double x);
74*58b9f456SAndroid Build Coastguard Worker
75*58b9f456SAndroid Build Coastguard Worker floating_point exp (arithmetic x);
76*58b9f456SAndroid Build Coastguard Worker float expf(float x);
77*58b9f456SAndroid Build Coastguard Worker long double expl(long double x);
78*58b9f456SAndroid Build Coastguard Worker
79*58b9f456SAndroid Build Coastguard Worker floating_point fabs (arithmetic x);
80*58b9f456SAndroid Build Coastguard Worker float fabsf(float x);
81*58b9f456SAndroid Build Coastguard Worker long double fabsl(long double x);
82*58b9f456SAndroid Build Coastguard Worker
83*58b9f456SAndroid Build Coastguard Worker floating_point floor (arithmetic x);
84*58b9f456SAndroid Build Coastguard Worker float floorf(float x);
85*58b9f456SAndroid Build Coastguard Worker long double floorl(long double x);
86*58b9f456SAndroid Build Coastguard Worker
87*58b9f456SAndroid Build Coastguard Worker floating_point fmod (arithmetic x, arithmetic y);
88*58b9f456SAndroid Build Coastguard Worker float fmodf(float x, float y);
89*58b9f456SAndroid Build Coastguard Worker long double fmodl(long double x, long double y);
90*58b9f456SAndroid Build Coastguard Worker
91*58b9f456SAndroid Build Coastguard Worker floating_point frexp (arithmetic value, int* exp);
92*58b9f456SAndroid Build Coastguard Worker float frexpf(float value, int* exp);
93*58b9f456SAndroid Build Coastguard Worker long double frexpl(long double value, int* exp);
94*58b9f456SAndroid Build Coastguard Worker
95*58b9f456SAndroid Build Coastguard Worker floating_point ldexp (arithmetic value, int exp);
96*58b9f456SAndroid Build Coastguard Worker float ldexpf(float value, int exp);
97*58b9f456SAndroid Build Coastguard Worker long double ldexpl(long double value, int exp);
98*58b9f456SAndroid Build Coastguard Worker
99*58b9f456SAndroid Build Coastguard Worker floating_point log (arithmetic x);
100*58b9f456SAndroid Build Coastguard Worker float logf(float x);
101*58b9f456SAndroid Build Coastguard Worker long double logl(long double x);
102*58b9f456SAndroid Build Coastguard Worker
103*58b9f456SAndroid Build Coastguard Worker floating_point log10 (arithmetic x);
104*58b9f456SAndroid Build Coastguard Worker float log10f(float x);
105*58b9f456SAndroid Build Coastguard Worker long double log10l(long double x);
106*58b9f456SAndroid Build Coastguard Worker
107*58b9f456SAndroid Build Coastguard Worker floating_point modf (floating_point value, floating_point* iptr);
108*58b9f456SAndroid Build Coastguard Worker float modff(float value, float* iptr);
109*58b9f456SAndroid Build Coastguard Worker long double modfl(long double value, long double* iptr);
110*58b9f456SAndroid Build Coastguard Worker
111*58b9f456SAndroid Build Coastguard Worker floating_point pow (arithmetic x, arithmetic y);
112*58b9f456SAndroid Build Coastguard Worker float powf(float x, float y);
113*58b9f456SAndroid Build Coastguard Worker long double powl(long double x, long double y);
114*58b9f456SAndroid Build Coastguard Worker
115*58b9f456SAndroid Build Coastguard Worker floating_point sin (arithmetic x);
116*58b9f456SAndroid Build Coastguard Worker float sinf(float x);
117*58b9f456SAndroid Build Coastguard Worker long double sinl(long double x);
118*58b9f456SAndroid Build Coastguard Worker
119*58b9f456SAndroid Build Coastguard Worker floating_point sinh (arithmetic x);
120*58b9f456SAndroid Build Coastguard Worker float sinhf(float x);
121*58b9f456SAndroid Build Coastguard Worker long double sinhl(long double x);
122*58b9f456SAndroid Build Coastguard Worker
123*58b9f456SAndroid Build Coastguard Worker floating_point sqrt (arithmetic x);
124*58b9f456SAndroid Build Coastguard Worker float sqrtf(float x);
125*58b9f456SAndroid Build Coastguard Worker long double sqrtl(long double x);
126*58b9f456SAndroid Build Coastguard Worker
127*58b9f456SAndroid Build Coastguard Worker floating_point tan (arithmetic x);
128*58b9f456SAndroid Build Coastguard Worker float tanf(float x);
129*58b9f456SAndroid Build Coastguard Worker long double tanl(long double x);
130*58b9f456SAndroid Build Coastguard Worker
131*58b9f456SAndroid Build Coastguard Worker floating_point tanh (arithmetic x);
132*58b9f456SAndroid Build Coastguard Worker float tanhf(float x);
133*58b9f456SAndroid Build Coastguard Worker long double tanhl(long double x);
134*58b9f456SAndroid Build Coastguard Worker
135*58b9f456SAndroid Build Coastguard Worker // C99
136*58b9f456SAndroid Build Coastguard Worker
137*58b9f456SAndroid Build Coastguard Worker bool signbit(arithmetic x);
138*58b9f456SAndroid Build Coastguard Worker
139*58b9f456SAndroid Build Coastguard Worker int fpclassify(arithmetic x);
140*58b9f456SAndroid Build Coastguard Worker
141*58b9f456SAndroid Build Coastguard Worker bool isfinite(arithmetic x);
142*58b9f456SAndroid Build Coastguard Worker bool isinf(arithmetic x);
143*58b9f456SAndroid Build Coastguard Worker bool isnan(arithmetic x);
144*58b9f456SAndroid Build Coastguard Worker bool isnormal(arithmetic x);
145*58b9f456SAndroid Build Coastguard Worker
146*58b9f456SAndroid Build Coastguard Worker bool isgreater(arithmetic x, arithmetic y);
147*58b9f456SAndroid Build Coastguard Worker bool isgreaterequal(arithmetic x, arithmetic y);
148*58b9f456SAndroid Build Coastguard Worker bool isless(arithmetic x, arithmetic y);
149*58b9f456SAndroid Build Coastguard Worker bool islessequal(arithmetic x, arithmetic y);
150*58b9f456SAndroid Build Coastguard Worker bool islessgreater(arithmetic x, arithmetic y);
151*58b9f456SAndroid Build Coastguard Worker bool isunordered(arithmetic x, arithmetic y);
152*58b9f456SAndroid Build Coastguard Worker
153*58b9f456SAndroid Build Coastguard Worker floating_point acosh (arithmetic x);
154*58b9f456SAndroid Build Coastguard Worker float acoshf(float x);
155*58b9f456SAndroid Build Coastguard Worker long double acoshl(long double x);
156*58b9f456SAndroid Build Coastguard Worker
157*58b9f456SAndroid Build Coastguard Worker floating_point asinh (arithmetic x);
158*58b9f456SAndroid Build Coastguard Worker float asinhf(float x);
159*58b9f456SAndroid Build Coastguard Worker long double asinhl(long double x);
160*58b9f456SAndroid Build Coastguard Worker
161*58b9f456SAndroid Build Coastguard Worker floating_point atanh (arithmetic x);
162*58b9f456SAndroid Build Coastguard Worker float atanhf(float x);
163*58b9f456SAndroid Build Coastguard Worker long double atanhl(long double x);
164*58b9f456SAndroid Build Coastguard Worker
165*58b9f456SAndroid Build Coastguard Worker floating_point cbrt (arithmetic x);
166*58b9f456SAndroid Build Coastguard Worker float cbrtf(float x);
167*58b9f456SAndroid Build Coastguard Worker long double cbrtl(long double x);
168*58b9f456SAndroid Build Coastguard Worker
169*58b9f456SAndroid Build Coastguard Worker floating_point copysign (arithmetic x, arithmetic y);
170*58b9f456SAndroid Build Coastguard Worker float copysignf(float x, float y);
171*58b9f456SAndroid Build Coastguard Worker long double copysignl(long double x, long double y);
172*58b9f456SAndroid Build Coastguard Worker
173*58b9f456SAndroid Build Coastguard Worker floating_point erf (arithmetic x);
174*58b9f456SAndroid Build Coastguard Worker float erff(float x);
175*58b9f456SAndroid Build Coastguard Worker long double erfl(long double x);
176*58b9f456SAndroid Build Coastguard Worker
177*58b9f456SAndroid Build Coastguard Worker floating_point erfc (arithmetic x);
178*58b9f456SAndroid Build Coastguard Worker float erfcf(float x);
179*58b9f456SAndroid Build Coastguard Worker long double erfcl(long double x);
180*58b9f456SAndroid Build Coastguard Worker
181*58b9f456SAndroid Build Coastguard Worker floating_point exp2 (arithmetic x);
182*58b9f456SAndroid Build Coastguard Worker float exp2f(float x);
183*58b9f456SAndroid Build Coastguard Worker long double exp2l(long double x);
184*58b9f456SAndroid Build Coastguard Worker
185*58b9f456SAndroid Build Coastguard Worker floating_point expm1 (arithmetic x);
186*58b9f456SAndroid Build Coastguard Worker float expm1f(float x);
187*58b9f456SAndroid Build Coastguard Worker long double expm1l(long double x);
188*58b9f456SAndroid Build Coastguard Worker
189*58b9f456SAndroid Build Coastguard Worker floating_point fdim (arithmetic x, arithmetic y);
190*58b9f456SAndroid Build Coastguard Worker float fdimf(float x, float y);
191*58b9f456SAndroid Build Coastguard Worker long double fdiml(long double x, long double y);
192*58b9f456SAndroid Build Coastguard Worker
193*58b9f456SAndroid Build Coastguard Worker floating_point fma (arithmetic x, arithmetic y, arithmetic z);
194*58b9f456SAndroid Build Coastguard Worker float fmaf(float x, float y, float z);
195*58b9f456SAndroid Build Coastguard Worker long double fmal(long double x, long double y, long double z);
196*58b9f456SAndroid Build Coastguard Worker
197*58b9f456SAndroid Build Coastguard Worker floating_point fmax (arithmetic x, arithmetic y);
198*58b9f456SAndroid Build Coastguard Worker float fmaxf(float x, float y);
199*58b9f456SAndroid Build Coastguard Worker long double fmaxl(long double x, long double y);
200*58b9f456SAndroid Build Coastguard Worker
201*58b9f456SAndroid Build Coastguard Worker floating_point fmin (arithmetic x, arithmetic y);
202*58b9f456SAndroid Build Coastguard Worker float fminf(float x, float y);
203*58b9f456SAndroid Build Coastguard Worker long double fminl(long double x, long double y);
204*58b9f456SAndroid Build Coastguard Worker
205*58b9f456SAndroid Build Coastguard Worker floating_point hypot (arithmetic x, arithmetic y);
206*58b9f456SAndroid Build Coastguard Worker float hypotf(float x, float y);
207*58b9f456SAndroid Build Coastguard Worker long double hypotl(long double x, long double y);
208*58b9f456SAndroid Build Coastguard Worker
209*58b9f456SAndroid Build Coastguard Worker int ilogb (arithmetic x);
210*58b9f456SAndroid Build Coastguard Worker int ilogbf(float x);
211*58b9f456SAndroid Build Coastguard Worker int ilogbl(long double x);
212*58b9f456SAndroid Build Coastguard Worker
213*58b9f456SAndroid Build Coastguard Worker floating_point lgamma (arithmetic x);
214*58b9f456SAndroid Build Coastguard Worker float lgammaf(float x);
215*58b9f456SAndroid Build Coastguard Worker long double lgammal(long double x);
216*58b9f456SAndroid Build Coastguard Worker
217*58b9f456SAndroid Build Coastguard Worker long long llrint (arithmetic x);
218*58b9f456SAndroid Build Coastguard Worker long long llrintf(float x);
219*58b9f456SAndroid Build Coastguard Worker long long llrintl(long double x);
220*58b9f456SAndroid Build Coastguard Worker
221*58b9f456SAndroid Build Coastguard Worker long long llround (arithmetic x);
222*58b9f456SAndroid Build Coastguard Worker long long llroundf(float x);
223*58b9f456SAndroid Build Coastguard Worker long long llroundl(long double x);
224*58b9f456SAndroid Build Coastguard Worker
225*58b9f456SAndroid Build Coastguard Worker floating_point log1p (arithmetic x);
226*58b9f456SAndroid Build Coastguard Worker float log1pf(float x);
227*58b9f456SAndroid Build Coastguard Worker long double log1pl(long double x);
228*58b9f456SAndroid Build Coastguard Worker
229*58b9f456SAndroid Build Coastguard Worker floating_point log2 (arithmetic x);
230*58b9f456SAndroid Build Coastguard Worker float log2f(float x);
231*58b9f456SAndroid Build Coastguard Worker long double log2l(long double x);
232*58b9f456SAndroid Build Coastguard Worker
233*58b9f456SAndroid Build Coastguard Worker floating_point logb (arithmetic x);
234*58b9f456SAndroid Build Coastguard Worker float logbf(float x);
235*58b9f456SAndroid Build Coastguard Worker long double logbl(long double x);
236*58b9f456SAndroid Build Coastguard Worker
237*58b9f456SAndroid Build Coastguard Worker long lrint (arithmetic x);
238*58b9f456SAndroid Build Coastguard Worker long lrintf(float x);
239*58b9f456SAndroid Build Coastguard Worker long lrintl(long double x);
240*58b9f456SAndroid Build Coastguard Worker
241*58b9f456SAndroid Build Coastguard Worker long lround (arithmetic x);
242*58b9f456SAndroid Build Coastguard Worker long lroundf(float x);
243*58b9f456SAndroid Build Coastguard Worker long lroundl(long double x);
244*58b9f456SAndroid Build Coastguard Worker
245*58b9f456SAndroid Build Coastguard Worker double nan (const char* str);
246*58b9f456SAndroid Build Coastguard Worker float nanf(const char* str);
247*58b9f456SAndroid Build Coastguard Worker long double nanl(const char* str);
248*58b9f456SAndroid Build Coastguard Worker
249*58b9f456SAndroid Build Coastguard Worker floating_point nearbyint (arithmetic x);
250*58b9f456SAndroid Build Coastguard Worker float nearbyintf(float x);
251*58b9f456SAndroid Build Coastguard Worker long double nearbyintl(long double x);
252*58b9f456SAndroid Build Coastguard Worker
253*58b9f456SAndroid Build Coastguard Worker floating_point nextafter (arithmetic x, arithmetic y);
254*58b9f456SAndroid Build Coastguard Worker float nextafterf(float x, float y);
255*58b9f456SAndroid Build Coastguard Worker long double nextafterl(long double x, long double y);
256*58b9f456SAndroid Build Coastguard Worker
257*58b9f456SAndroid Build Coastguard Worker floating_point nexttoward (arithmetic x, long double y);
258*58b9f456SAndroid Build Coastguard Worker float nexttowardf(float x, long double y);
259*58b9f456SAndroid Build Coastguard Worker long double nexttowardl(long double x, long double y);
260*58b9f456SAndroid Build Coastguard Worker
261*58b9f456SAndroid Build Coastguard Worker floating_point remainder (arithmetic x, arithmetic y);
262*58b9f456SAndroid Build Coastguard Worker float remainderf(float x, float y);
263*58b9f456SAndroid Build Coastguard Worker long double remainderl(long double x, long double y);
264*58b9f456SAndroid Build Coastguard Worker
265*58b9f456SAndroid Build Coastguard Worker floating_point remquo (arithmetic x, arithmetic y, int* pquo);
266*58b9f456SAndroid Build Coastguard Worker float remquof(float x, float y, int* pquo);
267*58b9f456SAndroid Build Coastguard Worker long double remquol(long double x, long double y, int* pquo);
268*58b9f456SAndroid Build Coastguard Worker
269*58b9f456SAndroid Build Coastguard Worker floating_point rint (arithmetic x);
270*58b9f456SAndroid Build Coastguard Worker float rintf(float x);
271*58b9f456SAndroid Build Coastguard Worker long double rintl(long double x);
272*58b9f456SAndroid Build Coastguard Worker
273*58b9f456SAndroid Build Coastguard Worker floating_point round (arithmetic x);
274*58b9f456SAndroid Build Coastguard Worker float roundf(float x);
275*58b9f456SAndroid Build Coastguard Worker long double roundl(long double x);
276*58b9f456SAndroid Build Coastguard Worker
277*58b9f456SAndroid Build Coastguard Worker floating_point scalbln (arithmetic x, long ex);
278*58b9f456SAndroid Build Coastguard Worker float scalblnf(float x, long ex);
279*58b9f456SAndroid Build Coastguard Worker long double scalblnl(long double x, long ex);
280*58b9f456SAndroid Build Coastguard Worker
281*58b9f456SAndroid Build Coastguard Worker floating_point scalbn (arithmetic x, int ex);
282*58b9f456SAndroid Build Coastguard Worker float scalbnf(float x, int ex);
283*58b9f456SAndroid Build Coastguard Worker long double scalbnl(long double x, int ex);
284*58b9f456SAndroid Build Coastguard Worker
285*58b9f456SAndroid Build Coastguard Worker floating_point tgamma (arithmetic x);
286*58b9f456SAndroid Build Coastguard Worker float tgammaf(float x);
287*58b9f456SAndroid Build Coastguard Worker long double tgammal(long double x);
288*58b9f456SAndroid Build Coastguard Worker
289*58b9f456SAndroid Build Coastguard Worker floating_point trunc (arithmetic x);
290*58b9f456SAndroid Build Coastguard Worker float truncf(float x);
291*58b9f456SAndroid Build Coastguard Worker long double truncl(long double x);
292*58b9f456SAndroid Build Coastguard Worker
293*58b9f456SAndroid Build Coastguard Worker */
294*58b9f456SAndroid Build Coastguard Worker
295*58b9f456SAndroid Build Coastguard Worker #include <__config>
296*58b9f456SAndroid Build Coastguard Worker
297*58b9f456SAndroid Build Coastguard Worker #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
298*58b9f456SAndroid Build Coastguard Worker #pragma GCC system_header
299*58b9f456SAndroid Build Coastguard Worker #endif
300*58b9f456SAndroid Build Coastguard Worker
301*58b9f456SAndroid Build Coastguard Worker #include_next <math.h>
302*58b9f456SAndroid Build Coastguard Worker
303*58b9f456SAndroid Build Coastguard Worker #ifdef __cplusplus
304*58b9f456SAndroid Build Coastguard Worker
305*58b9f456SAndroid Build Coastguard Worker // We support including .h headers inside 'extern "C"' contexts, so switch
306*58b9f456SAndroid Build Coastguard Worker // back to C++ linkage before including these C++ headers.
307*58b9f456SAndroid Build Coastguard Worker extern "C++" {
308*58b9f456SAndroid Build Coastguard Worker
309*58b9f456SAndroid Build Coastguard Worker #include <type_traits>
310*58b9f456SAndroid Build Coastguard Worker #include <limits>
311*58b9f456SAndroid Build Coastguard Worker
312*58b9f456SAndroid Build Coastguard Worker // signbit
313*58b9f456SAndroid Build Coastguard Worker
314*58b9f456SAndroid Build Coastguard Worker #ifdef signbit
315*58b9f456SAndroid Build Coastguard Worker
316*58b9f456SAndroid Build Coastguard Worker template <class _A1>
317*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
318*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_signbit(_A1 __lcpp_x)319*58b9f456SAndroid Build Coastguard Worker __libcpp_signbit(_A1 __lcpp_x) _NOEXCEPT
320*58b9f456SAndroid Build Coastguard Worker {
321*58b9f456SAndroid Build Coastguard Worker return signbit(__lcpp_x);
322*58b9f456SAndroid Build Coastguard Worker }
323*58b9f456SAndroid Build Coastguard Worker
324*58b9f456SAndroid Build Coastguard Worker #undef signbit
325*58b9f456SAndroid Build Coastguard Worker
326*58b9f456SAndroid Build Coastguard Worker template <class _A1>
327*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
328*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type
signbit(_A1 __lcpp_x)329*58b9f456SAndroid Build Coastguard Worker signbit(_A1 __lcpp_x) _NOEXCEPT
330*58b9f456SAndroid Build Coastguard Worker {
331*58b9f456SAndroid Build Coastguard Worker return __libcpp_signbit((typename std::__promote<_A1>::type)__lcpp_x);
332*58b9f456SAndroid Build Coastguard Worker }
333*58b9f456SAndroid Build Coastguard Worker
334*58b9f456SAndroid Build Coastguard Worker template <class _A1>
335*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
336*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<
337*58b9f456SAndroid Build Coastguard Worker std::is_integral<_A1>::value && std::is_signed<_A1>::value, bool>::type
signbit(_A1 __lcpp_x)338*58b9f456SAndroid Build Coastguard Worker signbit(_A1 __lcpp_x) _NOEXCEPT
339*58b9f456SAndroid Build Coastguard Worker { return __lcpp_x < 0; }
340*58b9f456SAndroid Build Coastguard Worker
341*58b9f456SAndroid Build Coastguard Worker template <class _A1>
342*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
343*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<
344*58b9f456SAndroid Build Coastguard Worker std::is_integral<_A1>::value && !std::is_signed<_A1>::value, bool>::type
signbit(_A1)345*58b9f456SAndroid Build Coastguard Worker signbit(_A1) _NOEXCEPT
346*58b9f456SAndroid Build Coastguard Worker { return false; }
347*58b9f456SAndroid Build Coastguard Worker
348*58b9f456SAndroid Build Coastguard Worker #elif defined(_LIBCPP_MSVCRT)
349*58b9f456SAndroid Build Coastguard Worker
350*58b9f456SAndroid Build Coastguard Worker template <typename _A1>
351*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
352*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type
353*58b9f456SAndroid Build Coastguard Worker signbit(_A1 __lcpp_x) _NOEXCEPT
354*58b9f456SAndroid Build Coastguard Worker {
355*58b9f456SAndroid Build Coastguard Worker return ::signbit(static_cast<typename std::__promote<_A1>::type>(__lcpp_x));
356*58b9f456SAndroid Build Coastguard Worker }
357*58b9f456SAndroid Build Coastguard Worker
358*58b9f456SAndroid Build Coastguard Worker template <class _A1>
359*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
360*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<
361*58b9f456SAndroid Build Coastguard Worker std::is_integral<_A1>::value && std::is_signed<_A1>::value, bool>::type
362*58b9f456SAndroid Build Coastguard Worker signbit(_A1 __lcpp_x) _NOEXCEPT
363*58b9f456SAndroid Build Coastguard Worker { return __lcpp_x < 0; }
364*58b9f456SAndroid Build Coastguard Worker
365*58b9f456SAndroid Build Coastguard Worker template <class _A1>
366*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
367*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<
368*58b9f456SAndroid Build Coastguard Worker std::is_integral<_A1>::value && !std::is_signed<_A1>::value, bool>::type
369*58b9f456SAndroid Build Coastguard Worker signbit(_A1) _NOEXCEPT
370*58b9f456SAndroid Build Coastguard Worker { return false; }
371*58b9f456SAndroid Build Coastguard Worker
372*58b9f456SAndroid Build Coastguard Worker #endif // signbit
373*58b9f456SAndroid Build Coastguard Worker
374*58b9f456SAndroid Build Coastguard Worker // fpclassify
375*58b9f456SAndroid Build Coastguard Worker
376*58b9f456SAndroid Build Coastguard Worker #ifdef fpclassify
377*58b9f456SAndroid Build Coastguard Worker
378*58b9f456SAndroid Build Coastguard Worker template <class _A1>
379*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
380*58b9f456SAndroid Build Coastguard Worker int
__libcpp_fpclassify(_A1 __lcpp_x)381*58b9f456SAndroid Build Coastguard Worker __libcpp_fpclassify(_A1 __lcpp_x) _NOEXCEPT
382*58b9f456SAndroid Build Coastguard Worker {
383*58b9f456SAndroid Build Coastguard Worker return fpclassify(__lcpp_x);
384*58b9f456SAndroid Build Coastguard Worker }
385*58b9f456SAndroid Build Coastguard Worker
386*58b9f456SAndroid Build Coastguard Worker #undef fpclassify
387*58b9f456SAndroid Build Coastguard Worker
388*58b9f456SAndroid Build Coastguard Worker template <class _A1>
389*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
390*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_floating_point<_A1>::value, int>::type
fpclassify(_A1 __lcpp_x)391*58b9f456SAndroid Build Coastguard Worker fpclassify(_A1 __lcpp_x) _NOEXCEPT
392*58b9f456SAndroid Build Coastguard Worker {
393*58b9f456SAndroid Build Coastguard Worker return __libcpp_fpclassify((typename std::__promote<_A1>::type)__lcpp_x);
394*58b9f456SAndroid Build Coastguard Worker }
395*58b9f456SAndroid Build Coastguard Worker
396*58b9f456SAndroid Build Coastguard Worker template <class _A1>
397*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
398*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, int>::type
fpclassify(_A1 __lcpp_x)399*58b9f456SAndroid Build Coastguard Worker fpclassify(_A1 __lcpp_x) _NOEXCEPT
400*58b9f456SAndroid Build Coastguard Worker { return __lcpp_x == 0 ? FP_ZERO : FP_NORMAL; }
401*58b9f456SAndroid Build Coastguard Worker
402*58b9f456SAndroid Build Coastguard Worker #elif defined(_LIBCPP_MSVCRT)
403*58b9f456SAndroid Build Coastguard Worker
404*58b9f456SAndroid Build Coastguard Worker template <typename _A1>
405*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
406*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type
fpclassify(_A1 __lcpp_x)407*58b9f456SAndroid Build Coastguard Worker fpclassify(_A1 __lcpp_x) _NOEXCEPT
408*58b9f456SAndroid Build Coastguard Worker {
409*58b9f456SAndroid Build Coastguard Worker return ::fpclassify(static_cast<typename std::__promote<_A1>::type>(__lcpp_x));
410*58b9f456SAndroid Build Coastguard Worker }
411*58b9f456SAndroid Build Coastguard Worker
412*58b9f456SAndroid Build Coastguard Worker template <class _A1>
413*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
414*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, int>::type
fpclassify(_A1 __lcpp_x)415*58b9f456SAndroid Build Coastguard Worker fpclassify(_A1 __lcpp_x) _NOEXCEPT
416*58b9f456SAndroid Build Coastguard Worker { return __lcpp_x == 0 ? FP_ZERO : FP_NORMAL; }
417*58b9f456SAndroid Build Coastguard Worker
418*58b9f456SAndroid Build Coastguard Worker #endif // fpclassify
419*58b9f456SAndroid Build Coastguard Worker
420*58b9f456SAndroid Build Coastguard Worker // isfinite
421*58b9f456SAndroid Build Coastguard Worker
422*58b9f456SAndroid Build Coastguard Worker #ifdef isfinite
423*58b9f456SAndroid Build Coastguard Worker
424*58b9f456SAndroid Build Coastguard Worker template <class _A1>
425*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
426*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_isfinite(_A1 __lcpp_x)427*58b9f456SAndroid Build Coastguard Worker __libcpp_isfinite(_A1 __lcpp_x) _NOEXCEPT
428*58b9f456SAndroid Build Coastguard Worker {
429*58b9f456SAndroid Build Coastguard Worker return isfinite(__lcpp_x);
430*58b9f456SAndroid Build Coastguard Worker }
431*58b9f456SAndroid Build Coastguard Worker
432*58b9f456SAndroid Build Coastguard Worker #undef isfinite
433*58b9f456SAndroid Build Coastguard Worker
434*58b9f456SAndroid Build Coastguard Worker template <class _A1>
435*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
436*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<
437*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity,
438*58b9f456SAndroid Build Coastguard Worker bool>::type
isfinite(_A1 __lcpp_x)439*58b9f456SAndroid Build Coastguard Worker isfinite(_A1 __lcpp_x) _NOEXCEPT
440*58b9f456SAndroid Build Coastguard Worker {
441*58b9f456SAndroid Build Coastguard Worker return __libcpp_isfinite((typename std::__promote<_A1>::type)__lcpp_x);
442*58b9f456SAndroid Build Coastguard Worker }
443*58b9f456SAndroid Build Coastguard Worker
444*58b9f456SAndroid Build Coastguard Worker template <class _A1>
445*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
446*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<
447*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity,
448*58b9f456SAndroid Build Coastguard Worker bool>::type
isfinite(_A1)449*58b9f456SAndroid Build Coastguard Worker isfinite(_A1) _NOEXCEPT
450*58b9f456SAndroid Build Coastguard Worker { return true; }
451*58b9f456SAndroid Build Coastguard Worker
452*58b9f456SAndroid Build Coastguard Worker #endif // isfinite
453*58b9f456SAndroid Build Coastguard Worker
454*58b9f456SAndroid Build Coastguard Worker // isinf
455*58b9f456SAndroid Build Coastguard Worker
456*58b9f456SAndroid Build Coastguard Worker #ifdef isinf
457*58b9f456SAndroid Build Coastguard Worker
458*58b9f456SAndroid Build Coastguard Worker template <class _A1>
459*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
460*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_isinf(_A1 __lcpp_x)461*58b9f456SAndroid Build Coastguard Worker __libcpp_isinf(_A1 __lcpp_x) _NOEXCEPT
462*58b9f456SAndroid Build Coastguard Worker {
463*58b9f456SAndroid Build Coastguard Worker return isinf(__lcpp_x);
464*58b9f456SAndroid Build Coastguard Worker }
465*58b9f456SAndroid Build Coastguard Worker
466*58b9f456SAndroid Build Coastguard Worker #undef isinf
467*58b9f456SAndroid Build Coastguard Worker
468*58b9f456SAndroid Build Coastguard Worker template <class _A1>
469*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
470*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<
471*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value && std::numeric_limits<_A1>::has_infinity,
472*58b9f456SAndroid Build Coastguard Worker bool>::type
isinf(_A1 __lcpp_x)473*58b9f456SAndroid Build Coastguard Worker isinf(_A1 __lcpp_x) _NOEXCEPT
474*58b9f456SAndroid Build Coastguard Worker {
475*58b9f456SAndroid Build Coastguard Worker return __libcpp_isinf((typename std::__promote<_A1>::type)__lcpp_x);
476*58b9f456SAndroid Build Coastguard Worker }
477*58b9f456SAndroid Build Coastguard Worker
478*58b9f456SAndroid Build Coastguard Worker template <class _A1>
479*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
480*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<
481*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value && !std::numeric_limits<_A1>::has_infinity,
482*58b9f456SAndroid Build Coastguard Worker bool>::type
isinf(_A1)483*58b9f456SAndroid Build Coastguard Worker isinf(_A1) _NOEXCEPT
484*58b9f456SAndroid Build Coastguard Worker { return false; }
485*58b9f456SAndroid Build Coastguard Worker
486*58b9f456SAndroid Build Coastguard Worker #ifdef _LIBCPP_PREFERRED_OVERLOAD
487*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
488*58b9f456SAndroid Build Coastguard Worker bool
isinf(float __lcpp_x)489*58b9f456SAndroid Build Coastguard Worker isinf(float __lcpp_x) _NOEXCEPT { return __libcpp_isinf(__lcpp_x); }
490*58b9f456SAndroid Build Coastguard Worker
491*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD
492*58b9f456SAndroid Build Coastguard Worker bool
isinf(double __lcpp_x)493*58b9f456SAndroid Build Coastguard Worker isinf(double __lcpp_x) _NOEXCEPT { return __libcpp_isinf(__lcpp_x); }
494*58b9f456SAndroid Build Coastguard Worker
495*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
496*58b9f456SAndroid Build Coastguard Worker bool
isinf(long double __lcpp_x)497*58b9f456SAndroid Build Coastguard Worker isinf(long double __lcpp_x) _NOEXCEPT { return __libcpp_isinf(__lcpp_x); }
498*58b9f456SAndroid Build Coastguard Worker #endif
499*58b9f456SAndroid Build Coastguard Worker
500*58b9f456SAndroid Build Coastguard Worker #endif // isinf
501*58b9f456SAndroid Build Coastguard Worker
502*58b9f456SAndroid Build Coastguard Worker // isnan
503*58b9f456SAndroid Build Coastguard Worker
504*58b9f456SAndroid Build Coastguard Worker #ifdef isnan
505*58b9f456SAndroid Build Coastguard Worker
506*58b9f456SAndroid Build Coastguard Worker template <class _A1>
507*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
508*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_isnan(_A1 __lcpp_x)509*58b9f456SAndroid Build Coastguard Worker __libcpp_isnan(_A1 __lcpp_x) _NOEXCEPT
510*58b9f456SAndroid Build Coastguard Worker {
511*58b9f456SAndroid Build Coastguard Worker return isnan(__lcpp_x);
512*58b9f456SAndroid Build Coastguard Worker }
513*58b9f456SAndroid Build Coastguard Worker
514*58b9f456SAndroid Build Coastguard Worker #undef isnan
515*58b9f456SAndroid Build Coastguard Worker
516*58b9f456SAndroid Build Coastguard Worker template <class _A1>
517*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
518*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type
isnan(_A1 __lcpp_x)519*58b9f456SAndroid Build Coastguard Worker isnan(_A1 __lcpp_x) _NOEXCEPT
520*58b9f456SAndroid Build Coastguard Worker {
521*58b9f456SAndroid Build Coastguard Worker return __libcpp_isnan((typename std::__promote<_A1>::type)__lcpp_x);
522*58b9f456SAndroid Build Coastguard Worker }
523*58b9f456SAndroid Build Coastguard Worker
524*58b9f456SAndroid Build Coastguard Worker template <class _A1>
525*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
526*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, bool>::type
isnan(_A1)527*58b9f456SAndroid Build Coastguard Worker isnan(_A1) _NOEXCEPT
528*58b9f456SAndroid Build Coastguard Worker { return false; }
529*58b9f456SAndroid Build Coastguard Worker
530*58b9f456SAndroid Build Coastguard Worker #ifdef _LIBCPP_PREFERRED_OVERLOAD
531*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
532*58b9f456SAndroid Build Coastguard Worker bool
isnan(float __lcpp_x)533*58b9f456SAndroid Build Coastguard Worker isnan(float __lcpp_x) _NOEXCEPT { return __libcpp_isnan(__lcpp_x); }
534*58b9f456SAndroid Build Coastguard Worker
535*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY _LIBCPP_PREFERRED_OVERLOAD
536*58b9f456SAndroid Build Coastguard Worker bool
isnan(double __lcpp_x)537*58b9f456SAndroid Build Coastguard Worker isnan(double __lcpp_x) _NOEXCEPT { return __libcpp_isnan(__lcpp_x); }
538*58b9f456SAndroid Build Coastguard Worker
539*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
540*58b9f456SAndroid Build Coastguard Worker bool
isnan(long double __lcpp_x)541*58b9f456SAndroid Build Coastguard Worker isnan(long double __lcpp_x) _NOEXCEPT { return __libcpp_isnan(__lcpp_x); }
542*58b9f456SAndroid Build Coastguard Worker #endif
543*58b9f456SAndroid Build Coastguard Worker
544*58b9f456SAndroid Build Coastguard Worker #endif // isnan
545*58b9f456SAndroid Build Coastguard Worker
546*58b9f456SAndroid Build Coastguard Worker // isnormal
547*58b9f456SAndroid Build Coastguard Worker
548*58b9f456SAndroid Build Coastguard Worker #ifdef isnormal
549*58b9f456SAndroid Build Coastguard Worker
550*58b9f456SAndroid Build Coastguard Worker template <class _A1>
551*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
552*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_isnormal(_A1 __lcpp_x)553*58b9f456SAndroid Build Coastguard Worker __libcpp_isnormal(_A1 __lcpp_x) _NOEXCEPT
554*58b9f456SAndroid Build Coastguard Worker {
555*58b9f456SAndroid Build Coastguard Worker return isnormal(__lcpp_x);
556*58b9f456SAndroid Build Coastguard Worker }
557*58b9f456SAndroid Build Coastguard Worker
558*58b9f456SAndroid Build Coastguard Worker #undef isnormal
559*58b9f456SAndroid Build Coastguard Worker
560*58b9f456SAndroid Build Coastguard Worker template <class _A1>
561*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
562*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_floating_point<_A1>::value, bool>::type
isnormal(_A1 __lcpp_x)563*58b9f456SAndroid Build Coastguard Worker isnormal(_A1 __lcpp_x) _NOEXCEPT
564*58b9f456SAndroid Build Coastguard Worker {
565*58b9f456SAndroid Build Coastguard Worker return __libcpp_isnormal((typename std::__promote<_A1>::type)__lcpp_x);
566*58b9f456SAndroid Build Coastguard Worker }
567*58b9f456SAndroid Build Coastguard Worker
568*58b9f456SAndroid Build Coastguard Worker template <class _A1>
569*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
570*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, bool>::type
isnormal(_A1 __lcpp_x)571*58b9f456SAndroid Build Coastguard Worker isnormal(_A1 __lcpp_x) _NOEXCEPT
572*58b9f456SAndroid Build Coastguard Worker { return __lcpp_x != 0; }
573*58b9f456SAndroid Build Coastguard Worker
574*58b9f456SAndroid Build Coastguard Worker #endif // isnormal
575*58b9f456SAndroid Build Coastguard Worker
576*58b9f456SAndroid Build Coastguard Worker // isgreater
577*58b9f456SAndroid Build Coastguard Worker
578*58b9f456SAndroid Build Coastguard Worker #ifdef isgreater
579*58b9f456SAndroid Build Coastguard Worker
580*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
581*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
582*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_isgreater(_A1 __lcpp_x,_A2 __lcpp_y)583*58b9f456SAndroid Build Coastguard Worker __libcpp_isgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
584*58b9f456SAndroid Build Coastguard Worker {
585*58b9f456SAndroid Build Coastguard Worker return isgreater(__lcpp_x, __lcpp_y);
586*58b9f456SAndroid Build Coastguard Worker }
587*58b9f456SAndroid Build Coastguard Worker
588*58b9f456SAndroid Build Coastguard Worker #undef isgreater
589*58b9f456SAndroid Build Coastguard Worker
590*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
591*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
592*58b9f456SAndroid Build Coastguard Worker typename std::enable_if
593*58b9f456SAndroid Build Coastguard Worker <
594*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
595*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
596*58b9f456SAndroid Build Coastguard Worker bool
597*58b9f456SAndroid Build Coastguard Worker >::type
isgreater(_A1 __lcpp_x,_A2 __lcpp_y)598*58b9f456SAndroid Build Coastguard Worker isgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
599*58b9f456SAndroid Build Coastguard Worker {
600*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type type;
601*58b9f456SAndroid Build Coastguard Worker return __libcpp_isgreater((type)__lcpp_x, (type)__lcpp_y);
602*58b9f456SAndroid Build Coastguard Worker }
603*58b9f456SAndroid Build Coastguard Worker
604*58b9f456SAndroid Build Coastguard Worker #endif // isgreater
605*58b9f456SAndroid Build Coastguard Worker
606*58b9f456SAndroid Build Coastguard Worker // isgreaterequal
607*58b9f456SAndroid Build Coastguard Worker
608*58b9f456SAndroid Build Coastguard Worker #ifdef isgreaterequal
609*58b9f456SAndroid Build Coastguard Worker
610*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
611*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
612*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_isgreaterequal(_A1 __lcpp_x,_A2 __lcpp_y)613*58b9f456SAndroid Build Coastguard Worker __libcpp_isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
614*58b9f456SAndroid Build Coastguard Worker {
615*58b9f456SAndroid Build Coastguard Worker return isgreaterequal(__lcpp_x, __lcpp_y);
616*58b9f456SAndroid Build Coastguard Worker }
617*58b9f456SAndroid Build Coastguard Worker
618*58b9f456SAndroid Build Coastguard Worker #undef isgreaterequal
619*58b9f456SAndroid Build Coastguard Worker
620*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
621*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
622*58b9f456SAndroid Build Coastguard Worker typename std::enable_if
623*58b9f456SAndroid Build Coastguard Worker <
624*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
625*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
626*58b9f456SAndroid Build Coastguard Worker bool
627*58b9f456SAndroid Build Coastguard Worker >::type
isgreaterequal(_A1 __lcpp_x,_A2 __lcpp_y)628*58b9f456SAndroid Build Coastguard Worker isgreaterequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
629*58b9f456SAndroid Build Coastguard Worker {
630*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type type;
631*58b9f456SAndroid Build Coastguard Worker return __libcpp_isgreaterequal((type)__lcpp_x, (type)__lcpp_y);
632*58b9f456SAndroid Build Coastguard Worker }
633*58b9f456SAndroid Build Coastguard Worker
634*58b9f456SAndroid Build Coastguard Worker #endif // isgreaterequal
635*58b9f456SAndroid Build Coastguard Worker
636*58b9f456SAndroid Build Coastguard Worker // isless
637*58b9f456SAndroid Build Coastguard Worker
638*58b9f456SAndroid Build Coastguard Worker #ifdef isless
639*58b9f456SAndroid Build Coastguard Worker
640*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
641*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
642*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_isless(_A1 __lcpp_x,_A2 __lcpp_y)643*58b9f456SAndroid Build Coastguard Worker __libcpp_isless(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
644*58b9f456SAndroid Build Coastguard Worker {
645*58b9f456SAndroid Build Coastguard Worker return isless(__lcpp_x, __lcpp_y);
646*58b9f456SAndroid Build Coastguard Worker }
647*58b9f456SAndroid Build Coastguard Worker
648*58b9f456SAndroid Build Coastguard Worker #undef isless
649*58b9f456SAndroid Build Coastguard Worker
650*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
651*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
652*58b9f456SAndroid Build Coastguard Worker typename std::enable_if
653*58b9f456SAndroid Build Coastguard Worker <
654*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
655*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
656*58b9f456SAndroid Build Coastguard Worker bool
657*58b9f456SAndroid Build Coastguard Worker >::type
isless(_A1 __lcpp_x,_A2 __lcpp_y)658*58b9f456SAndroid Build Coastguard Worker isless(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
659*58b9f456SAndroid Build Coastguard Worker {
660*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type type;
661*58b9f456SAndroid Build Coastguard Worker return __libcpp_isless((type)__lcpp_x, (type)__lcpp_y);
662*58b9f456SAndroid Build Coastguard Worker }
663*58b9f456SAndroid Build Coastguard Worker
664*58b9f456SAndroid Build Coastguard Worker #endif // isless
665*58b9f456SAndroid Build Coastguard Worker
666*58b9f456SAndroid Build Coastguard Worker // islessequal
667*58b9f456SAndroid Build Coastguard Worker
668*58b9f456SAndroid Build Coastguard Worker #ifdef islessequal
669*58b9f456SAndroid Build Coastguard Worker
670*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
671*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
672*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_islessequal(_A1 __lcpp_x,_A2 __lcpp_y)673*58b9f456SAndroid Build Coastguard Worker __libcpp_islessequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
674*58b9f456SAndroid Build Coastguard Worker {
675*58b9f456SAndroid Build Coastguard Worker return islessequal(__lcpp_x, __lcpp_y);
676*58b9f456SAndroid Build Coastguard Worker }
677*58b9f456SAndroid Build Coastguard Worker
678*58b9f456SAndroid Build Coastguard Worker #undef islessequal
679*58b9f456SAndroid Build Coastguard Worker
680*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
681*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
682*58b9f456SAndroid Build Coastguard Worker typename std::enable_if
683*58b9f456SAndroid Build Coastguard Worker <
684*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
685*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
686*58b9f456SAndroid Build Coastguard Worker bool
687*58b9f456SAndroid Build Coastguard Worker >::type
islessequal(_A1 __lcpp_x,_A2 __lcpp_y)688*58b9f456SAndroid Build Coastguard Worker islessequal(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
689*58b9f456SAndroid Build Coastguard Worker {
690*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type type;
691*58b9f456SAndroid Build Coastguard Worker return __libcpp_islessequal((type)__lcpp_x, (type)__lcpp_y);
692*58b9f456SAndroid Build Coastguard Worker }
693*58b9f456SAndroid Build Coastguard Worker
694*58b9f456SAndroid Build Coastguard Worker #endif // islessequal
695*58b9f456SAndroid Build Coastguard Worker
696*58b9f456SAndroid Build Coastguard Worker // islessgreater
697*58b9f456SAndroid Build Coastguard Worker
698*58b9f456SAndroid Build Coastguard Worker #ifdef islessgreater
699*58b9f456SAndroid Build Coastguard Worker
700*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
701*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
702*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_islessgreater(_A1 __lcpp_x,_A2 __lcpp_y)703*58b9f456SAndroid Build Coastguard Worker __libcpp_islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
704*58b9f456SAndroid Build Coastguard Worker {
705*58b9f456SAndroid Build Coastguard Worker return islessgreater(__lcpp_x, __lcpp_y);
706*58b9f456SAndroid Build Coastguard Worker }
707*58b9f456SAndroid Build Coastguard Worker
708*58b9f456SAndroid Build Coastguard Worker #undef islessgreater
709*58b9f456SAndroid Build Coastguard Worker
710*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
711*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
712*58b9f456SAndroid Build Coastguard Worker typename std::enable_if
713*58b9f456SAndroid Build Coastguard Worker <
714*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
715*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
716*58b9f456SAndroid Build Coastguard Worker bool
717*58b9f456SAndroid Build Coastguard Worker >::type
islessgreater(_A1 __lcpp_x,_A2 __lcpp_y)718*58b9f456SAndroid Build Coastguard Worker islessgreater(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
719*58b9f456SAndroid Build Coastguard Worker {
720*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type type;
721*58b9f456SAndroid Build Coastguard Worker return __libcpp_islessgreater((type)__lcpp_x, (type)__lcpp_y);
722*58b9f456SAndroid Build Coastguard Worker }
723*58b9f456SAndroid Build Coastguard Worker
724*58b9f456SAndroid Build Coastguard Worker #endif // islessgreater
725*58b9f456SAndroid Build Coastguard Worker
726*58b9f456SAndroid Build Coastguard Worker // isunordered
727*58b9f456SAndroid Build Coastguard Worker
728*58b9f456SAndroid Build Coastguard Worker #ifdef isunordered
729*58b9f456SAndroid Build Coastguard Worker
730*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
731*58b9f456SAndroid Build Coastguard Worker _LIBCPP_INLINE_VISIBILITY
732*58b9f456SAndroid Build Coastguard Worker bool
__libcpp_isunordered(_A1 __lcpp_x,_A2 __lcpp_y)733*58b9f456SAndroid Build Coastguard Worker __libcpp_isunordered(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
734*58b9f456SAndroid Build Coastguard Worker {
735*58b9f456SAndroid Build Coastguard Worker return isunordered(__lcpp_x, __lcpp_y);
736*58b9f456SAndroid Build Coastguard Worker }
737*58b9f456SAndroid Build Coastguard Worker
738*58b9f456SAndroid Build Coastguard Worker #undef isunordered
739*58b9f456SAndroid Build Coastguard Worker
740*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
741*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
742*58b9f456SAndroid Build Coastguard Worker typename std::enable_if
743*58b9f456SAndroid Build Coastguard Worker <
744*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
745*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
746*58b9f456SAndroid Build Coastguard Worker bool
747*58b9f456SAndroid Build Coastguard Worker >::type
isunordered(_A1 __lcpp_x,_A2 __lcpp_y)748*58b9f456SAndroid Build Coastguard Worker isunordered(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
749*58b9f456SAndroid Build Coastguard Worker {
750*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type type;
751*58b9f456SAndroid Build Coastguard Worker return __libcpp_isunordered((type)__lcpp_x, (type)__lcpp_y);
752*58b9f456SAndroid Build Coastguard Worker }
753*58b9f456SAndroid Build Coastguard Worker
754*58b9f456SAndroid Build Coastguard Worker #endif // isunordered
755*58b9f456SAndroid Build Coastguard Worker
756*58b9f456SAndroid Build Coastguard Worker // abs
757*58b9f456SAndroid Build Coastguard Worker
758*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
759*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
760*58b9f456SAndroid Build Coastguard Worker float
abs(float __lcpp_x)761*58b9f456SAndroid Build Coastguard Worker abs(float __lcpp_x) _NOEXCEPT {return ::fabsf(__lcpp_x);}
762*58b9f456SAndroid Build Coastguard Worker
763*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
764*58b9f456SAndroid Build Coastguard Worker double
abs(double __lcpp_x)765*58b9f456SAndroid Build Coastguard Worker abs(double __lcpp_x) _NOEXCEPT {return ::fabs(__lcpp_x);}
766*58b9f456SAndroid Build Coastguard Worker
767*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
768*58b9f456SAndroid Build Coastguard Worker long double
abs(long double __lcpp_x)769*58b9f456SAndroid Build Coastguard Worker abs(long double __lcpp_x) _NOEXCEPT {return ::fabsl(__lcpp_x);}
770*58b9f456SAndroid Build Coastguard Worker #endif // !(defined(_AIX) || defined(__sun__))
771*58b9f456SAndroid Build Coastguard Worker
772*58b9f456SAndroid Build Coastguard Worker // acos
773*58b9f456SAndroid Build Coastguard Worker
774*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
acos(float __lcpp_x)775*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float acos(float __lcpp_x) _NOEXCEPT {return ::acosf(__lcpp_x);}
acos(long double __lcpp_x)776*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double acos(long double __lcpp_x) _NOEXCEPT {return ::acosl(__lcpp_x);}
777*58b9f456SAndroid Build Coastguard Worker #endif
778*58b9f456SAndroid Build Coastguard Worker
779*58b9f456SAndroid Build Coastguard Worker template <class _A1>
780*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
781*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
acos(_A1 __lcpp_x)782*58b9f456SAndroid Build Coastguard Worker acos(_A1 __lcpp_x) _NOEXCEPT {return ::acos((double)__lcpp_x);}
783*58b9f456SAndroid Build Coastguard Worker
784*58b9f456SAndroid Build Coastguard Worker // asin
785*58b9f456SAndroid Build Coastguard Worker
786*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
asin(float __lcpp_x)787*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float asin(float __lcpp_x) _NOEXCEPT {return ::asinf(__lcpp_x);}
asin(long double __lcpp_x)788*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double asin(long double __lcpp_x) _NOEXCEPT {return ::asinl(__lcpp_x);}
789*58b9f456SAndroid Build Coastguard Worker #endif
790*58b9f456SAndroid Build Coastguard Worker
791*58b9f456SAndroid Build Coastguard Worker template <class _A1>
792*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
793*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
asin(_A1 __lcpp_x)794*58b9f456SAndroid Build Coastguard Worker asin(_A1 __lcpp_x) _NOEXCEPT {return ::asin((double)__lcpp_x);}
795*58b9f456SAndroid Build Coastguard Worker
796*58b9f456SAndroid Build Coastguard Worker // atan
797*58b9f456SAndroid Build Coastguard Worker
798*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
atan(float __lcpp_x)799*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float atan(float __lcpp_x) _NOEXCEPT {return ::atanf(__lcpp_x);}
atan(long double __lcpp_x)800*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double atan(long double __lcpp_x) _NOEXCEPT {return ::atanl(__lcpp_x);}
801*58b9f456SAndroid Build Coastguard Worker #endif
802*58b9f456SAndroid Build Coastguard Worker
803*58b9f456SAndroid Build Coastguard Worker template <class _A1>
804*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
805*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
atan(_A1 __lcpp_x)806*58b9f456SAndroid Build Coastguard Worker atan(_A1 __lcpp_x) _NOEXCEPT {return ::atan((double)__lcpp_x);}
807*58b9f456SAndroid Build Coastguard Worker
808*58b9f456SAndroid Build Coastguard Worker // atan2
809*58b9f456SAndroid Build Coastguard Worker
810*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
atan2(float __lcpp_y,float __lcpp_x)811*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float atan2(float __lcpp_y, float __lcpp_x) _NOEXCEPT {return ::atan2f(__lcpp_y, __lcpp_x);}
atan2(long double __lcpp_y,long double __lcpp_x)812*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double atan2(long double __lcpp_y, long double __lcpp_x) _NOEXCEPT {return ::atan2l(__lcpp_y, __lcpp_x);}
813*58b9f456SAndroid Build Coastguard Worker #endif
814*58b9f456SAndroid Build Coastguard Worker
815*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
816*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
817*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
818*58b9f456SAndroid Build Coastguard Worker <
819*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
820*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
821*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
822*58b9f456SAndroid Build Coastguard Worker >::type
atan2(_A1 __lcpp_y,_A2 __lcpp_x)823*58b9f456SAndroid Build Coastguard Worker atan2(_A1 __lcpp_y, _A2 __lcpp_x) _NOEXCEPT
824*58b9f456SAndroid Build Coastguard Worker {
825*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
826*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
827*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
828*58b9f456SAndroid Build Coastguard Worker return ::atan2((__result_type)__lcpp_y, (__result_type)__lcpp_x);
829*58b9f456SAndroid Build Coastguard Worker }
830*58b9f456SAndroid Build Coastguard Worker
831*58b9f456SAndroid Build Coastguard Worker // ceil
832*58b9f456SAndroid Build Coastguard Worker
833*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
ceil(float __lcpp_x)834*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float ceil(float __lcpp_x) _NOEXCEPT {return ::ceilf(__lcpp_x);}
ceil(long double __lcpp_x)835*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double ceil(long double __lcpp_x) _NOEXCEPT {return ::ceill(__lcpp_x);}
836*58b9f456SAndroid Build Coastguard Worker #endif
837*58b9f456SAndroid Build Coastguard Worker
838*58b9f456SAndroid Build Coastguard Worker template <class _A1>
839*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
840*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
ceil(_A1 __lcpp_x)841*58b9f456SAndroid Build Coastguard Worker ceil(_A1 __lcpp_x) _NOEXCEPT {return ::ceil((double)__lcpp_x);}
842*58b9f456SAndroid Build Coastguard Worker
843*58b9f456SAndroid Build Coastguard Worker // cos
844*58b9f456SAndroid Build Coastguard Worker
845*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
cos(float __lcpp_x)846*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float cos(float __lcpp_x) _NOEXCEPT {return ::cosf(__lcpp_x);}
cos(long double __lcpp_x)847*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double cos(long double __lcpp_x) _NOEXCEPT {return ::cosl(__lcpp_x);}
848*58b9f456SAndroid Build Coastguard Worker #endif
849*58b9f456SAndroid Build Coastguard Worker
850*58b9f456SAndroid Build Coastguard Worker template <class _A1>
851*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
852*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
cos(_A1 __lcpp_x)853*58b9f456SAndroid Build Coastguard Worker cos(_A1 __lcpp_x) _NOEXCEPT {return ::cos((double)__lcpp_x);}
854*58b9f456SAndroid Build Coastguard Worker
855*58b9f456SAndroid Build Coastguard Worker // cosh
856*58b9f456SAndroid Build Coastguard Worker
857*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
cosh(float __lcpp_x)858*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float cosh(float __lcpp_x) _NOEXCEPT {return ::coshf(__lcpp_x);}
cosh(long double __lcpp_x)859*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double cosh(long double __lcpp_x) _NOEXCEPT {return ::coshl(__lcpp_x);}
860*58b9f456SAndroid Build Coastguard Worker #endif
861*58b9f456SAndroid Build Coastguard Worker
862*58b9f456SAndroid Build Coastguard Worker template <class _A1>
863*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
864*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
cosh(_A1 __lcpp_x)865*58b9f456SAndroid Build Coastguard Worker cosh(_A1 __lcpp_x) _NOEXCEPT {return ::cosh((double)__lcpp_x);}
866*58b9f456SAndroid Build Coastguard Worker
867*58b9f456SAndroid Build Coastguard Worker // exp
868*58b9f456SAndroid Build Coastguard Worker
869*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
exp(float __lcpp_x)870*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float exp(float __lcpp_x) _NOEXCEPT {return ::expf(__lcpp_x);}
exp(long double __lcpp_x)871*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double exp(long double __lcpp_x) _NOEXCEPT {return ::expl(__lcpp_x);}
872*58b9f456SAndroid Build Coastguard Worker #endif
873*58b9f456SAndroid Build Coastguard Worker
874*58b9f456SAndroid Build Coastguard Worker template <class _A1>
875*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
876*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
exp(_A1 __lcpp_x)877*58b9f456SAndroid Build Coastguard Worker exp(_A1 __lcpp_x) _NOEXCEPT {return ::exp((double)__lcpp_x);}
878*58b9f456SAndroid Build Coastguard Worker
879*58b9f456SAndroid Build Coastguard Worker // fabs
880*58b9f456SAndroid Build Coastguard Worker
881*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
fabs(float __lcpp_x)882*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float fabs(float __lcpp_x) _NOEXCEPT {return ::fabsf(__lcpp_x);}
fabs(long double __lcpp_x)883*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double fabs(long double __lcpp_x) _NOEXCEPT {return ::fabsl(__lcpp_x);}
884*58b9f456SAndroid Build Coastguard Worker #endif
885*58b9f456SAndroid Build Coastguard Worker
886*58b9f456SAndroid Build Coastguard Worker template <class _A1>
887*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
888*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
fabs(_A1 __lcpp_x)889*58b9f456SAndroid Build Coastguard Worker fabs(_A1 __lcpp_x) _NOEXCEPT {return ::fabs((double)__lcpp_x);}
890*58b9f456SAndroid Build Coastguard Worker
891*58b9f456SAndroid Build Coastguard Worker // floor
892*58b9f456SAndroid Build Coastguard Worker
893*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
floor(float __lcpp_x)894*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float floor(float __lcpp_x) _NOEXCEPT {return ::floorf(__lcpp_x);}
floor(long double __lcpp_x)895*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double floor(long double __lcpp_x) _NOEXCEPT {return ::floorl(__lcpp_x);}
896*58b9f456SAndroid Build Coastguard Worker #endif
897*58b9f456SAndroid Build Coastguard Worker
898*58b9f456SAndroid Build Coastguard Worker template <class _A1>
899*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
900*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
floor(_A1 __lcpp_x)901*58b9f456SAndroid Build Coastguard Worker floor(_A1 __lcpp_x) _NOEXCEPT {return ::floor((double)__lcpp_x);}
902*58b9f456SAndroid Build Coastguard Worker
903*58b9f456SAndroid Build Coastguard Worker // fmod
904*58b9f456SAndroid Build Coastguard Worker
905*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
fmod(float __lcpp_x,float __lcpp_y)906*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float fmod(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fmodf(__lcpp_x, __lcpp_y);}
fmod(long double __lcpp_x,long double __lcpp_y)907*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double fmod(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fmodl(__lcpp_x, __lcpp_y);}
908*58b9f456SAndroid Build Coastguard Worker #endif
909*58b9f456SAndroid Build Coastguard Worker
910*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
911*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
912*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
913*58b9f456SAndroid Build Coastguard Worker <
914*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
915*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
916*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
917*58b9f456SAndroid Build Coastguard Worker >::type
fmod(_A1 __lcpp_x,_A2 __lcpp_y)918*58b9f456SAndroid Build Coastguard Worker fmod(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
919*58b9f456SAndroid Build Coastguard Worker {
920*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
921*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
922*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
923*58b9f456SAndroid Build Coastguard Worker return ::fmod((__result_type)__lcpp_x, (__result_type)__lcpp_y);
924*58b9f456SAndroid Build Coastguard Worker }
925*58b9f456SAndroid Build Coastguard Worker
926*58b9f456SAndroid Build Coastguard Worker // frexp
927*58b9f456SAndroid Build Coastguard Worker
928*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
frexp(float __lcpp_x,int * __lcpp_e)929*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float frexp(float __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexpf(__lcpp_x, __lcpp_e);}
frexp(long double __lcpp_x,int * __lcpp_e)930*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double frexp(long double __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexpl(__lcpp_x, __lcpp_e);}
931*58b9f456SAndroid Build Coastguard Worker #endif
932*58b9f456SAndroid Build Coastguard Worker
933*58b9f456SAndroid Build Coastguard Worker template <class _A1>
934*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
935*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
frexp(_A1 __lcpp_x,int * __lcpp_e)936*58b9f456SAndroid Build Coastguard Worker frexp(_A1 __lcpp_x, int* __lcpp_e) _NOEXCEPT {return ::frexp((double)__lcpp_x, __lcpp_e);}
937*58b9f456SAndroid Build Coastguard Worker
938*58b9f456SAndroid Build Coastguard Worker // ldexp
939*58b9f456SAndroid Build Coastguard Worker
940*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
ldexp(float __lcpp_x,int __lcpp_e)941*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float ldexp(float __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexpf(__lcpp_x, __lcpp_e);}
ldexp(long double __lcpp_x,int __lcpp_e)942*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double ldexp(long double __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexpl(__lcpp_x, __lcpp_e);}
943*58b9f456SAndroid Build Coastguard Worker #endif
944*58b9f456SAndroid Build Coastguard Worker
945*58b9f456SAndroid Build Coastguard Worker template <class _A1>
946*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
947*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
ldexp(_A1 __lcpp_x,int __lcpp_e)948*58b9f456SAndroid Build Coastguard Worker ldexp(_A1 __lcpp_x, int __lcpp_e) _NOEXCEPT {return ::ldexp((double)__lcpp_x, __lcpp_e);}
949*58b9f456SAndroid Build Coastguard Worker
950*58b9f456SAndroid Build Coastguard Worker // log
951*58b9f456SAndroid Build Coastguard Worker
952*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
log(float __lcpp_x)953*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float log(float __lcpp_x) _NOEXCEPT {return ::logf(__lcpp_x);}
log(long double __lcpp_x)954*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double log(long double __lcpp_x) _NOEXCEPT {return ::logl(__lcpp_x);}
955*58b9f456SAndroid Build Coastguard Worker #endif
956*58b9f456SAndroid Build Coastguard Worker
957*58b9f456SAndroid Build Coastguard Worker template <class _A1>
958*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
959*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
log(_A1 __lcpp_x)960*58b9f456SAndroid Build Coastguard Worker log(_A1 __lcpp_x) _NOEXCEPT {return ::log((double)__lcpp_x);}
961*58b9f456SAndroid Build Coastguard Worker
962*58b9f456SAndroid Build Coastguard Worker // log10
963*58b9f456SAndroid Build Coastguard Worker
964*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
log10(float __lcpp_x)965*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float log10(float __lcpp_x) _NOEXCEPT {return ::log10f(__lcpp_x);}
log10(long double __lcpp_x)966*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double log10(long double __lcpp_x) _NOEXCEPT {return ::log10l(__lcpp_x);}
967*58b9f456SAndroid Build Coastguard Worker #endif
968*58b9f456SAndroid Build Coastguard Worker
969*58b9f456SAndroid Build Coastguard Worker template <class _A1>
970*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
971*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
log10(_A1 __lcpp_x)972*58b9f456SAndroid Build Coastguard Worker log10(_A1 __lcpp_x) _NOEXCEPT {return ::log10((double)__lcpp_x);}
973*58b9f456SAndroid Build Coastguard Worker
974*58b9f456SAndroid Build Coastguard Worker // modf
975*58b9f456SAndroid Build Coastguard Worker
976*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
modf(float __lcpp_x,float * __lcpp_y)977*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float modf(float __lcpp_x, float* __lcpp_y) _NOEXCEPT {return ::modff(__lcpp_x, __lcpp_y);}
modf(long double __lcpp_x,long double * __lcpp_y)978*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double modf(long double __lcpp_x, long double* __lcpp_y) _NOEXCEPT {return ::modfl(__lcpp_x, __lcpp_y);}
979*58b9f456SAndroid Build Coastguard Worker #endif
980*58b9f456SAndroid Build Coastguard Worker
981*58b9f456SAndroid Build Coastguard Worker // pow
982*58b9f456SAndroid Build Coastguard Worker
983*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
pow(float __lcpp_x,float __lcpp_y)984*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float pow(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::powf(__lcpp_x, __lcpp_y);}
pow(long double __lcpp_x,long double __lcpp_y)985*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double pow(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::powl(__lcpp_x, __lcpp_y);}
986*58b9f456SAndroid Build Coastguard Worker #endif
987*58b9f456SAndroid Build Coastguard Worker
988*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
989*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
990*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
991*58b9f456SAndroid Build Coastguard Worker <
992*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
993*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
994*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
995*58b9f456SAndroid Build Coastguard Worker >::type
pow(_A1 __lcpp_x,_A2 __lcpp_y)996*58b9f456SAndroid Build Coastguard Worker pow(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
997*58b9f456SAndroid Build Coastguard Worker {
998*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
999*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1000*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1001*58b9f456SAndroid Build Coastguard Worker return ::pow((__result_type)__lcpp_x, (__result_type)__lcpp_y);
1002*58b9f456SAndroid Build Coastguard Worker }
1003*58b9f456SAndroid Build Coastguard Worker
1004*58b9f456SAndroid Build Coastguard Worker // sin
1005*58b9f456SAndroid Build Coastguard Worker
1006*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
sin(float __lcpp_x)1007*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float sin(float __lcpp_x) _NOEXCEPT {return ::sinf(__lcpp_x);}
sin(long double __lcpp_x)1008*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double sin(long double __lcpp_x) _NOEXCEPT {return ::sinl(__lcpp_x);}
1009*58b9f456SAndroid Build Coastguard Worker #endif
1010*58b9f456SAndroid Build Coastguard Worker
1011*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1012*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1013*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
sin(_A1 __lcpp_x)1014*58b9f456SAndroid Build Coastguard Worker sin(_A1 __lcpp_x) _NOEXCEPT {return ::sin((double)__lcpp_x);}
1015*58b9f456SAndroid Build Coastguard Worker
1016*58b9f456SAndroid Build Coastguard Worker // sinh
1017*58b9f456SAndroid Build Coastguard Worker
1018*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
sinh(float __lcpp_x)1019*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float sinh(float __lcpp_x) _NOEXCEPT {return ::sinhf(__lcpp_x);}
sinh(long double __lcpp_x)1020*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double sinh(long double __lcpp_x) _NOEXCEPT {return ::sinhl(__lcpp_x);}
1021*58b9f456SAndroid Build Coastguard Worker #endif
1022*58b9f456SAndroid Build Coastguard Worker
1023*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1024*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1025*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
sinh(_A1 __lcpp_x)1026*58b9f456SAndroid Build Coastguard Worker sinh(_A1 __lcpp_x) _NOEXCEPT {return ::sinh((double)__lcpp_x);}
1027*58b9f456SAndroid Build Coastguard Worker
1028*58b9f456SAndroid Build Coastguard Worker // sqrt
1029*58b9f456SAndroid Build Coastguard Worker
1030*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
sqrt(float __lcpp_x)1031*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float sqrt(float __lcpp_x) _NOEXCEPT {return ::sqrtf(__lcpp_x);}
sqrt(long double __lcpp_x)1032*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double sqrt(long double __lcpp_x) _NOEXCEPT {return ::sqrtl(__lcpp_x);}
1033*58b9f456SAndroid Build Coastguard Worker #endif
1034*58b9f456SAndroid Build Coastguard Worker
1035*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1036*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1037*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
sqrt(_A1 __lcpp_x)1038*58b9f456SAndroid Build Coastguard Worker sqrt(_A1 __lcpp_x) _NOEXCEPT {return ::sqrt((double)__lcpp_x);}
1039*58b9f456SAndroid Build Coastguard Worker
1040*58b9f456SAndroid Build Coastguard Worker // tan
1041*58b9f456SAndroid Build Coastguard Worker
1042*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
tan(float __lcpp_x)1043*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float tan(float __lcpp_x) _NOEXCEPT {return ::tanf(__lcpp_x);}
tan(long double __lcpp_x)1044*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double tan(long double __lcpp_x) _NOEXCEPT {return ::tanl(__lcpp_x);}
1045*58b9f456SAndroid Build Coastguard Worker #endif
1046*58b9f456SAndroid Build Coastguard Worker
1047*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1048*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1049*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
tan(_A1 __lcpp_x)1050*58b9f456SAndroid Build Coastguard Worker tan(_A1 __lcpp_x) _NOEXCEPT {return ::tan((double)__lcpp_x);}
1051*58b9f456SAndroid Build Coastguard Worker
1052*58b9f456SAndroid Build Coastguard Worker // tanh
1053*58b9f456SAndroid Build Coastguard Worker
1054*58b9f456SAndroid Build Coastguard Worker #if !(defined(_AIX) || defined(__sun__))
tanh(float __lcpp_x)1055*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float tanh(float __lcpp_x) _NOEXCEPT {return ::tanhf(__lcpp_x);}
tanh(long double __lcpp_x)1056*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double tanh(long double __lcpp_x) _NOEXCEPT {return ::tanhl(__lcpp_x);}
1057*58b9f456SAndroid Build Coastguard Worker #endif
1058*58b9f456SAndroid Build Coastguard Worker
1059*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1060*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1061*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
tanh(_A1 __lcpp_x)1062*58b9f456SAndroid Build Coastguard Worker tanh(_A1 __lcpp_x) _NOEXCEPT {return ::tanh((double)__lcpp_x);}
1063*58b9f456SAndroid Build Coastguard Worker
1064*58b9f456SAndroid Build Coastguard Worker // acosh
1065*58b9f456SAndroid Build Coastguard Worker
acosh(float __lcpp_x)1066*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float acosh(float __lcpp_x) _NOEXCEPT {return ::acoshf(__lcpp_x);}
acosh(long double __lcpp_x)1067*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double acosh(long double __lcpp_x) _NOEXCEPT {return ::acoshl(__lcpp_x);}
1068*58b9f456SAndroid Build Coastguard Worker
1069*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1070*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1071*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
acosh(_A1 __lcpp_x)1072*58b9f456SAndroid Build Coastguard Worker acosh(_A1 __lcpp_x) _NOEXCEPT {return ::acosh((double)__lcpp_x);}
1073*58b9f456SAndroid Build Coastguard Worker
1074*58b9f456SAndroid Build Coastguard Worker // asinh
1075*58b9f456SAndroid Build Coastguard Worker
asinh(float __lcpp_x)1076*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float asinh(float __lcpp_x) _NOEXCEPT {return ::asinhf(__lcpp_x);}
asinh(long double __lcpp_x)1077*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double asinh(long double __lcpp_x) _NOEXCEPT {return ::asinhl(__lcpp_x);}
1078*58b9f456SAndroid Build Coastguard Worker
1079*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1080*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1081*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
asinh(_A1 __lcpp_x)1082*58b9f456SAndroid Build Coastguard Worker asinh(_A1 __lcpp_x) _NOEXCEPT {return ::asinh((double)__lcpp_x);}
1083*58b9f456SAndroid Build Coastguard Worker
1084*58b9f456SAndroid Build Coastguard Worker // atanh
1085*58b9f456SAndroid Build Coastguard Worker
atanh(float __lcpp_x)1086*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float atanh(float __lcpp_x) _NOEXCEPT {return ::atanhf(__lcpp_x);}
atanh(long double __lcpp_x)1087*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double atanh(long double __lcpp_x) _NOEXCEPT {return ::atanhl(__lcpp_x);}
1088*58b9f456SAndroid Build Coastguard Worker
1089*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1090*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1091*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
atanh(_A1 __lcpp_x)1092*58b9f456SAndroid Build Coastguard Worker atanh(_A1 __lcpp_x) _NOEXCEPT {return ::atanh((double)__lcpp_x);}
1093*58b9f456SAndroid Build Coastguard Worker
1094*58b9f456SAndroid Build Coastguard Worker // cbrt
1095*58b9f456SAndroid Build Coastguard Worker
cbrt(float __lcpp_x)1096*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float cbrt(float __lcpp_x) _NOEXCEPT {return ::cbrtf(__lcpp_x);}
cbrt(long double __lcpp_x)1097*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double cbrt(long double __lcpp_x) _NOEXCEPT {return ::cbrtl(__lcpp_x);}
1098*58b9f456SAndroid Build Coastguard Worker
1099*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1100*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1101*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
cbrt(_A1 __lcpp_x)1102*58b9f456SAndroid Build Coastguard Worker cbrt(_A1 __lcpp_x) _NOEXCEPT {return ::cbrt((double)__lcpp_x);}
1103*58b9f456SAndroid Build Coastguard Worker
1104*58b9f456SAndroid Build Coastguard Worker // copysign
1105*58b9f456SAndroid Build Coastguard Worker
copysign(float __lcpp_x,float __lcpp_y)1106*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float copysign(float __lcpp_x,
1107*58b9f456SAndroid Build Coastguard Worker float __lcpp_y) _NOEXCEPT {
1108*58b9f456SAndroid Build Coastguard Worker return ::copysignf(__lcpp_x, __lcpp_y);
1109*58b9f456SAndroid Build Coastguard Worker }
1110*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double
copysign(long double __lcpp_x,long double __lcpp_y)1111*58b9f456SAndroid Build Coastguard Worker copysign(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {
1112*58b9f456SAndroid Build Coastguard Worker return ::copysignl(__lcpp_x, __lcpp_y);
1113*58b9f456SAndroid Build Coastguard Worker }
1114*58b9f456SAndroid Build Coastguard Worker
1115*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
1116*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1117*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1118*58b9f456SAndroid Build Coastguard Worker <
1119*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1120*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
1121*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
1122*58b9f456SAndroid Build Coastguard Worker >::type
copysign(_A1 __lcpp_x,_A2 __lcpp_y)1123*58b9f456SAndroid Build Coastguard Worker copysign(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
1124*58b9f456SAndroid Build Coastguard Worker {
1125*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
1126*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1127*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1128*58b9f456SAndroid Build Coastguard Worker return ::copysign((__result_type)__lcpp_x, (__result_type)__lcpp_y);
1129*58b9f456SAndroid Build Coastguard Worker }
1130*58b9f456SAndroid Build Coastguard Worker
1131*58b9f456SAndroid Build Coastguard Worker // erf
1132*58b9f456SAndroid Build Coastguard Worker
erf(float __lcpp_x)1133*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float erf(float __lcpp_x) _NOEXCEPT {return ::erff(__lcpp_x);}
erf(long double __lcpp_x)1134*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double erf(long double __lcpp_x) _NOEXCEPT {return ::erfl(__lcpp_x);}
1135*58b9f456SAndroid Build Coastguard Worker
1136*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1137*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1138*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
erf(_A1 __lcpp_x)1139*58b9f456SAndroid Build Coastguard Worker erf(_A1 __lcpp_x) _NOEXCEPT {return ::erf((double)__lcpp_x);}
1140*58b9f456SAndroid Build Coastguard Worker
1141*58b9f456SAndroid Build Coastguard Worker // erfc
1142*58b9f456SAndroid Build Coastguard Worker
erfc(float __lcpp_x)1143*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float erfc(float __lcpp_x) _NOEXCEPT {return ::erfcf(__lcpp_x);}
erfc(long double __lcpp_x)1144*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double erfc(long double __lcpp_x) _NOEXCEPT {return ::erfcl(__lcpp_x);}
1145*58b9f456SAndroid Build Coastguard Worker
1146*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1147*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1148*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
erfc(_A1 __lcpp_x)1149*58b9f456SAndroid Build Coastguard Worker erfc(_A1 __lcpp_x) _NOEXCEPT {return ::erfc((double)__lcpp_x);}
1150*58b9f456SAndroid Build Coastguard Worker
1151*58b9f456SAndroid Build Coastguard Worker // exp2
1152*58b9f456SAndroid Build Coastguard Worker
exp2(float __lcpp_x)1153*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float exp2(float __lcpp_x) _NOEXCEPT {return ::exp2f(__lcpp_x);}
exp2(long double __lcpp_x)1154*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double exp2(long double __lcpp_x) _NOEXCEPT {return ::exp2l(__lcpp_x);}
1155*58b9f456SAndroid Build Coastguard Worker
1156*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1157*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1158*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
exp2(_A1 __lcpp_x)1159*58b9f456SAndroid Build Coastguard Worker exp2(_A1 __lcpp_x) _NOEXCEPT {return ::exp2((double)__lcpp_x);}
1160*58b9f456SAndroid Build Coastguard Worker
1161*58b9f456SAndroid Build Coastguard Worker // expm1
1162*58b9f456SAndroid Build Coastguard Worker
expm1(float __lcpp_x)1163*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float expm1(float __lcpp_x) _NOEXCEPT {return ::expm1f(__lcpp_x);}
expm1(long double __lcpp_x)1164*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double expm1(long double __lcpp_x) _NOEXCEPT {return ::expm1l(__lcpp_x);}
1165*58b9f456SAndroid Build Coastguard Worker
1166*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1167*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1168*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
expm1(_A1 __lcpp_x)1169*58b9f456SAndroid Build Coastguard Worker expm1(_A1 __lcpp_x) _NOEXCEPT {return ::expm1((double)__lcpp_x);}
1170*58b9f456SAndroid Build Coastguard Worker
1171*58b9f456SAndroid Build Coastguard Worker // fdim
1172*58b9f456SAndroid Build Coastguard Worker
fdim(float __lcpp_x,float __lcpp_y)1173*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float fdim(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fdimf(__lcpp_x, __lcpp_y);}
fdim(long double __lcpp_x,long double __lcpp_y)1174*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double fdim(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fdiml(__lcpp_x, __lcpp_y);}
1175*58b9f456SAndroid Build Coastguard Worker
1176*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
1177*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1178*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1179*58b9f456SAndroid Build Coastguard Worker <
1180*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1181*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
1182*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
1183*58b9f456SAndroid Build Coastguard Worker >::type
fdim(_A1 __lcpp_x,_A2 __lcpp_y)1184*58b9f456SAndroid Build Coastguard Worker fdim(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
1185*58b9f456SAndroid Build Coastguard Worker {
1186*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
1187*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1188*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1189*58b9f456SAndroid Build Coastguard Worker return ::fdim((__result_type)__lcpp_x, (__result_type)__lcpp_y);
1190*58b9f456SAndroid Build Coastguard Worker }
1191*58b9f456SAndroid Build Coastguard Worker
1192*58b9f456SAndroid Build Coastguard Worker // fma
1193*58b9f456SAndroid Build Coastguard Worker
fma(float __lcpp_x,float __lcpp_y,float __lcpp_z)1194*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float fma(float __lcpp_x, float __lcpp_y, float __lcpp_z) _NOEXCEPT {return ::fmaf(__lcpp_x, __lcpp_y, __lcpp_z);}
fma(long double __lcpp_x,long double __lcpp_y,long double __lcpp_z)1195*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double fma(long double __lcpp_x, long double __lcpp_y, long double __lcpp_z) _NOEXCEPT {return ::fmal(__lcpp_x, __lcpp_y, __lcpp_z);}
1196*58b9f456SAndroid Build Coastguard Worker
1197*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2, class _A3>
1198*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1199*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1200*58b9f456SAndroid Build Coastguard Worker <
1201*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1202*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value &&
1203*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A3>::value,
1204*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2, _A3>
1205*58b9f456SAndroid Build Coastguard Worker >::type
fma(_A1 __lcpp_x,_A2 __lcpp_y,_A3 __lcpp_z)1206*58b9f456SAndroid Build Coastguard Worker fma(_A1 __lcpp_x, _A2 __lcpp_y, _A3 __lcpp_z) _NOEXCEPT
1207*58b9f456SAndroid Build Coastguard Worker {
1208*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2, _A3>::type __result_type;
1209*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1210*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value &&
1211*58b9f456SAndroid Build Coastguard Worker std::is_same<_A3, __result_type>::value)), "");
1212*58b9f456SAndroid Build Coastguard Worker return ::fma((__result_type)__lcpp_x, (__result_type)__lcpp_y, (__result_type)__lcpp_z);
1213*58b9f456SAndroid Build Coastguard Worker }
1214*58b9f456SAndroid Build Coastguard Worker
1215*58b9f456SAndroid Build Coastguard Worker // fmax
1216*58b9f456SAndroid Build Coastguard Worker
fmax(float __lcpp_x,float __lcpp_y)1217*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float fmax(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fmaxf(__lcpp_x, __lcpp_y);}
fmax(long double __lcpp_x,long double __lcpp_y)1218*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double fmax(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fmaxl(__lcpp_x, __lcpp_y);}
1219*58b9f456SAndroid Build Coastguard Worker
1220*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
1221*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1222*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1223*58b9f456SAndroid Build Coastguard Worker <
1224*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1225*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
1226*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
1227*58b9f456SAndroid Build Coastguard Worker >::type
fmax(_A1 __lcpp_x,_A2 __lcpp_y)1228*58b9f456SAndroid Build Coastguard Worker fmax(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
1229*58b9f456SAndroid Build Coastguard Worker {
1230*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
1231*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1232*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1233*58b9f456SAndroid Build Coastguard Worker return ::fmax((__result_type)__lcpp_x, (__result_type)__lcpp_y);
1234*58b9f456SAndroid Build Coastguard Worker }
1235*58b9f456SAndroid Build Coastguard Worker
1236*58b9f456SAndroid Build Coastguard Worker // fmin
1237*58b9f456SAndroid Build Coastguard Worker
fmin(float __lcpp_x,float __lcpp_y)1238*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float fmin(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::fminf(__lcpp_x, __lcpp_y);}
fmin(long double __lcpp_x,long double __lcpp_y)1239*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double fmin(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::fminl(__lcpp_x, __lcpp_y);}
1240*58b9f456SAndroid Build Coastguard Worker
1241*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
1242*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1243*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1244*58b9f456SAndroid Build Coastguard Worker <
1245*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1246*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
1247*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
1248*58b9f456SAndroid Build Coastguard Worker >::type
fmin(_A1 __lcpp_x,_A2 __lcpp_y)1249*58b9f456SAndroid Build Coastguard Worker fmin(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
1250*58b9f456SAndroid Build Coastguard Worker {
1251*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
1252*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1253*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1254*58b9f456SAndroid Build Coastguard Worker return ::fmin((__result_type)__lcpp_x, (__result_type)__lcpp_y);
1255*58b9f456SAndroid Build Coastguard Worker }
1256*58b9f456SAndroid Build Coastguard Worker
1257*58b9f456SAndroid Build Coastguard Worker // hypot
1258*58b9f456SAndroid Build Coastguard Worker
hypot(float __lcpp_x,float __lcpp_y)1259*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float hypot(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::hypotf(__lcpp_x, __lcpp_y);}
hypot(long double __lcpp_x,long double __lcpp_y)1260*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double hypot(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::hypotl(__lcpp_x, __lcpp_y);}
1261*58b9f456SAndroid Build Coastguard Worker
1262*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
1263*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1264*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1265*58b9f456SAndroid Build Coastguard Worker <
1266*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1267*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
1268*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
1269*58b9f456SAndroid Build Coastguard Worker >::type
hypot(_A1 __lcpp_x,_A2 __lcpp_y)1270*58b9f456SAndroid Build Coastguard Worker hypot(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
1271*58b9f456SAndroid Build Coastguard Worker {
1272*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
1273*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1274*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1275*58b9f456SAndroid Build Coastguard Worker return ::hypot((__result_type)__lcpp_x, (__result_type)__lcpp_y);
1276*58b9f456SAndroid Build Coastguard Worker }
1277*58b9f456SAndroid Build Coastguard Worker
1278*58b9f456SAndroid Build Coastguard Worker // ilogb
1279*58b9f456SAndroid Build Coastguard Worker
ilogb(float __lcpp_x)1280*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY int ilogb(float __lcpp_x) _NOEXCEPT {return ::ilogbf(__lcpp_x);}
ilogb(long double __lcpp_x)1281*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY int ilogb(long double __lcpp_x) _NOEXCEPT {return ::ilogbl(__lcpp_x);}
1282*58b9f456SAndroid Build Coastguard Worker
1283*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1284*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1285*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, int>::type
ilogb(_A1 __lcpp_x)1286*58b9f456SAndroid Build Coastguard Worker ilogb(_A1 __lcpp_x) _NOEXCEPT {return ::ilogb((double)__lcpp_x);}
1287*58b9f456SAndroid Build Coastguard Worker
1288*58b9f456SAndroid Build Coastguard Worker // lgamma
1289*58b9f456SAndroid Build Coastguard Worker
lgamma(float __lcpp_x)1290*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float lgamma(float __lcpp_x) _NOEXCEPT {return ::lgammaf(__lcpp_x);}
lgamma(long double __lcpp_x)1291*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double lgamma(long double __lcpp_x) _NOEXCEPT {return ::lgammal(__lcpp_x);}
1292*58b9f456SAndroid Build Coastguard Worker
1293*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1294*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1295*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
lgamma(_A1 __lcpp_x)1296*58b9f456SAndroid Build Coastguard Worker lgamma(_A1 __lcpp_x) _NOEXCEPT {return ::lgamma((double)__lcpp_x);}
1297*58b9f456SAndroid Build Coastguard Worker
1298*58b9f456SAndroid Build Coastguard Worker // llrint
1299*58b9f456SAndroid Build Coastguard Worker
llrint(float __lcpp_x)1300*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long long llrint(float __lcpp_x) _NOEXCEPT {return ::llrintf(__lcpp_x);}
llrint(long double __lcpp_x)1301*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long long llrint(long double __lcpp_x) _NOEXCEPT {return ::llrintl(__lcpp_x);}
1302*58b9f456SAndroid Build Coastguard Worker
1303*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1304*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1305*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, long long>::type
llrint(_A1 __lcpp_x)1306*58b9f456SAndroid Build Coastguard Worker llrint(_A1 __lcpp_x) _NOEXCEPT {return ::llrint((double)__lcpp_x);}
1307*58b9f456SAndroid Build Coastguard Worker
1308*58b9f456SAndroid Build Coastguard Worker // llround
1309*58b9f456SAndroid Build Coastguard Worker
llround(float __lcpp_x)1310*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long long llround(float __lcpp_x) _NOEXCEPT {return ::llroundf(__lcpp_x);}
llround(long double __lcpp_x)1311*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long long llround(long double __lcpp_x) _NOEXCEPT {return ::llroundl(__lcpp_x);}
1312*58b9f456SAndroid Build Coastguard Worker
1313*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1314*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1315*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, long long>::type
llround(_A1 __lcpp_x)1316*58b9f456SAndroid Build Coastguard Worker llround(_A1 __lcpp_x) _NOEXCEPT {return ::llround((double)__lcpp_x);}
1317*58b9f456SAndroid Build Coastguard Worker
1318*58b9f456SAndroid Build Coastguard Worker // log1p
1319*58b9f456SAndroid Build Coastguard Worker
log1p(float __lcpp_x)1320*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float log1p(float __lcpp_x) _NOEXCEPT {return ::log1pf(__lcpp_x);}
log1p(long double __lcpp_x)1321*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double log1p(long double __lcpp_x) _NOEXCEPT {return ::log1pl(__lcpp_x);}
1322*58b9f456SAndroid Build Coastguard Worker
1323*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1324*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1325*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
log1p(_A1 __lcpp_x)1326*58b9f456SAndroid Build Coastguard Worker log1p(_A1 __lcpp_x) _NOEXCEPT {return ::log1p((double)__lcpp_x);}
1327*58b9f456SAndroid Build Coastguard Worker
1328*58b9f456SAndroid Build Coastguard Worker // log2
1329*58b9f456SAndroid Build Coastguard Worker
log2(float __lcpp_x)1330*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float log2(float __lcpp_x) _NOEXCEPT {return ::log2f(__lcpp_x);}
log2(long double __lcpp_x)1331*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double log2(long double __lcpp_x) _NOEXCEPT {return ::log2l(__lcpp_x);}
1332*58b9f456SAndroid Build Coastguard Worker
1333*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1334*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1335*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
log2(_A1 __lcpp_x)1336*58b9f456SAndroid Build Coastguard Worker log2(_A1 __lcpp_x) _NOEXCEPT {return ::log2((double)__lcpp_x);}
1337*58b9f456SAndroid Build Coastguard Worker
1338*58b9f456SAndroid Build Coastguard Worker // logb
1339*58b9f456SAndroid Build Coastguard Worker
logb(float __lcpp_x)1340*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float logb(float __lcpp_x) _NOEXCEPT {return ::logbf(__lcpp_x);}
logb(long double __lcpp_x)1341*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double logb(long double __lcpp_x) _NOEXCEPT {return ::logbl(__lcpp_x);}
1342*58b9f456SAndroid Build Coastguard Worker
1343*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1344*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1345*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
logb(_A1 __lcpp_x)1346*58b9f456SAndroid Build Coastguard Worker logb(_A1 __lcpp_x) _NOEXCEPT {return ::logb((double)__lcpp_x);}
1347*58b9f456SAndroid Build Coastguard Worker
1348*58b9f456SAndroid Build Coastguard Worker // lrint
1349*58b9f456SAndroid Build Coastguard Worker
lrint(float __lcpp_x)1350*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long lrint(float __lcpp_x) _NOEXCEPT {return ::lrintf(__lcpp_x);}
lrint(long double __lcpp_x)1351*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long lrint(long double __lcpp_x) _NOEXCEPT {return ::lrintl(__lcpp_x);}
1352*58b9f456SAndroid Build Coastguard Worker
1353*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1354*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1355*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, long>::type
lrint(_A1 __lcpp_x)1356*58b9f456SAndroid Build Coastguard Worker lrint(_A1 __lcpp_x) _NOEXCEPT {return ::lrint((double)__lcpp_x);}
1357*58b9f456SAndroid Build Coastguard Worker
1358*58b9f456SAndroid Build Coastguard Worker // lround
1359*58b9f456SAndroid Build Coastguard Worker
lround(float __lcpp_x)1360*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long lround(float __lcpp_x) _NOEXCEPT {return ::lroundf(__lcpp_x);}
lround(long double __lcpp_x)1361*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long lround(long double __lcpp_x) _NOEXCEPT {return ::lroundl(__lcpp_x);}
1362*58b9f456SAndroid Build Coastguard Worker
1363*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1364*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1365*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, long>::type
lround(_A1 __lcpp_x)1366*58b9f456SAndroid Build Coastguard Worker lround(_A1 __lcpp_x) _NOEXCEPT {return ::lround((double)__lcpp_x);}
1367*58b9f456SAndroid Build Coastguard Worker
1368*58b9f456SAndroid Build Coastguard Worker // nan
1369*58b9f456SAndroid Build Coastguard Worker
1370*58b9f456SAndroid Build Coastguard Worker // nearbyint
1371*58b9f456SAndroid Build Coastguard Worker
nearbyint(float __lcpp_x)1372*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float nearbyint(float __lcpp_x) _NOEXCEPT {return ::nearbyintf(__lcpp_x);}
nearbyint(long double __lcpp_x)1373*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double nearbyint(long double __lcpp_x) _NOEXCEPT {return ::nearbyintl(__lcpp_x);}
1374*58b9f456SAndroid Build Coastguard Worker
1375*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1376*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1377*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
nearbyint(_A1 __lcpp_x)1378*58b9f456SAndroid Build Coastguard Worker nearbyint(_A1 __lcpp_x) _NOEXCEPT {return ::nearbyint((double)__lcpp_x);}
1379*58b9f456SAndroid Build Coastguard Worker
1380*58b9f456SAndroid Build Coastguard Worker // nextafter
1381*58b9f456SAndroid Build Coastguard Worker
nextafter(float __lcpp_x,float __lcpp_y)1382*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float nextafter(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::nextafterf(__lcpp_x, __lcpp_y);}
nextafter(long double __lcpp_x,long double __lcpp_y)1383*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double nextafter(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nextafterl(__lcpp_x, __lcpp_y);}
1384*58b9f456SAndroid Build Coastguard Worker
1385*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
1386*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1387*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1388*58b9f456SAndroid Build Coastguard Worker <
1389*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1390*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
1391*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
1392*58b9f456SAndroid Build Coastguard Worker >::type
nextafter(_A1 __lcpp_x,_A2 __lcpp_y)1393*58b9f456SAndroid Build Coastguard Worker nextafter(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
1394*58b9f456SAndroid Build Coastguard Worker {
1395*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
1396*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1397*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1398*58b9f456SAndroid Build Coastguard Worker return ::nextafter((__result_type)__lcpp_x, (__result_type)__lcpp_y);
1399*58b9f456SAndroid Build Coastguard Worker }
1400*58b9f456SAndroid Build Coastguard Worker
1401*58b9f456SAndroid Build Coastguard Worker // nexttoward
1402*58b9f456SAndroid Build Coastguard Worker
nexttoward(float __lcpp_x,long double __lcpp_y)1403*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float nexttoward(float __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nexttowardf(__lcpp_x, __lcpp_y);}
nexttoward(long double __lcpp_x,long double __lcpp_y)1404*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double nexttoward(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nexttowardl(__lcpp_x, __lcpp_y);}
1405*58b9f456SAndroid Build Coastguard Worker
1406*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1407*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1408*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
nexttoward(_A1 __lcpp_x,long double __lcpp_y)1409*58b9f456SAndroid Build Coastguard Worker nexttoward(_A1 __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::nexttoward((double)__lcpp_x, __lcpp_y);}
1410*58b9f456SAndroid Build Coastguard Worker
1411*58b9f456SAndroid Build Coastguard Worker // remainder
1412*58b9f456SAndroid Build Coastguard Worker
remainder(float __lcpp_x,float __lcpp_y)1413*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float remainder(float __lcpp_x, float __lcpp_y) _NOEXCEPT {return ::remainderf(__lcpp_x, __lcpp_y);}
remainder(long double __lcpp_x,long double __lcpp_y)1414*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double remainder(long double __lcpp_x, long double __lcpp_y) _NOEXCEPT {return ::remainderl(__lcpp_x, __lcpp_y);}
1415*58b9f456SAndroid Build Coastguard Worker
1416*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
1417*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1418*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1419*58b9f456SAndroid Build Coastguard Worker <
1420*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1421*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
1422*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
1423*58b9f456SAndroid Build Coastguard Worker >::type
remainder(_A1 __lcpp_x,_A2 __lcpp_y)1424*58b9f456SAndroid Build Coastguard Worker remainder(_A1 __lcpp_x, _A2 __lcpp_y) _NOEXCEPT
1425*58b9f456SAndroid Build Coastguard Worker {
1426*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
1427*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1428*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1429*58b9f456SAndroid Build Coastguard Worker return ::remainder((__result_type)__lcpp_x, (__result_type)__lcpp_y);
1430*58b9f456SAndroid Build Coastguard Worker }
1431*58b9f456SAndroid Build Coastguard Worker
1432*58b9f456SAndroid Build Coastguard Worker // remquo
1433*58b9f456SAndroid Build Coastguard Worker
remquo(float __lcpp_x,float __lcpp_y,int * __lcpp_z)1434*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float remquo(float __lcpp_x, float __lcpp_y, int* __lcpp_z) _NOEXCEPT {return ::remquof(__lcpp_x, __lcpp_y, __lcpp_z);}
remquo(long double __lcpp_x,long double __lcpp_y,int * __lcpp_z)1435*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double remquo(long double __lcpp_x, long double __lcpp_y, int* __lcpp_z) _NOEXCEPT {return ::remquol(__lcpp_x, __lcpp_y, __lcpp_z);}
1436*58b9f456SAndroid Build Coastguard Worker
1437*58b9f456SAndroid Build Coastguard Worker template <class _A1, class _A2>
1438*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1439*58b9f456SAndroid Build Coastguard Worker typename std::__lazy_enable_if
1440*58b9f456SAndroid Build Coastguard Worker <
1441*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A1>::value &&
1442*58b9f456SAndroid Build Coastguard Worker std::is_arithmetic<_A2>::value,
1443*58b9f456SAndroid Build Coastguard Worker std::__promote<_A1, _A2>
1444*58b9f456SAndroid Build Coastguard Worker >::type
remquo(_A1 __lcpp_x,_A2 __lcpp_y,int * __lcpp_z)1445*58b9f456SAndroid Build Coastguard Worker remquo(_A1 __lcpp_x, _A2 __lcpp_y, int* __lcpp_z) _NOEXCEPT
1446*58b9f456SAndroid Build Coastguard Worker {
1447*58b9f456SAndroid Build Coastguard Worker typedef typename std::__promote<_A1, _A2>::type __result_type;
1448*58b9f456SAndroid Build Coastguard Worker static_assert((!(std::is_same<_A1, __result_type>::value &&
1449*58b9f456SAndroid Build Coastguard Worker std::is_same<_A2, __result_type>::value)), "");
1450*58b9f456SAndroid Build Coastguard Worker return ::remquo((__result_type)__lcpp_x, (__result_type)__lcpp_y, __lcpp_z);
1451*58b9f456SAndroid Build Coastguard Worker }
1452*58b9f456SAndroid Build Coastguard Worker
1453*58b9f456SAndroid Build Coastguard Worker // rint
1454*58b9f456SAndroid Build Coastguard Worker
rint(float __lcpp_x)1455*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float rint(float __lcpp_x) _NOEXCEPT {return ::rintf(__lcpp_x);}
rint(long double __lcpp_x)1456*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double rint(long double __lcpp_x) _NOEXCEPT {return ::rintl(__lcpp_x);}
1457*58b9f456SAndroid Build Coastguard Worker
1458*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1459*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1460*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
rint(_A1 __lcpp_x)1461*58b9f456SAndroid Build Coastguard Worker rint(_A1 __lcpp_x) _NOEXCEPT {return ::rint((double)__lcpp_x);}
1462*58b9f456SAndroid Build Coastguard Worker
1463*58b9f456SAndroid Build Coastguard Worker // round
1464*58b9f456SAndroid Build Coastguard Worker
round(float __lcpp_x)1465*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float round(float __lcpp_x) _NOEXCEPT {return ::roundf(__lcpp_x);}
round(long double __lcpp_x)1466*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double round(long double __lcpp_x) _NOEXCEPT {return ::roundl(__lcpp_x);}
1467*58b9f456SAndroid Build Coastguard Worker
1468*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1469*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1470*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
round(_A1 __lcpp_x)1471*58b9f456SAndroid Build Coastguard Worker round(_A1 __lcpp_x) _NOEXCEPT {return ::round((double)__lcpp_x);}
1472*58b9f456SAndroid Build Coastguard Worker
1473*58b9f456SAndroid Build Coastguard Worker // scalbln
1474*58b9f456SAndroid Build Coastguard Worker
scalbln(float __lcpp_x,long __lcpp_y)1475*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float scalbln(float __lcpp_x, long __lcpp_y) _NOEXCEPT {return ::scalblnf(__lcpp_x, __lcpp_y);}
scalbln(long double __lcpp_x,long __lcpp_y)1476*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double scalbln(long double __lcpp_x, long __lcpp_y) _NOEXCEPT {return ::scalblnl(__lcpp_x, __lcpp_y);}
1477*58b9f456SAndroid Build Coastguard Worker
1478*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1479*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1480*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
scalbln(_A1 __lcpp_x,long __lcpp_y)1481*58b9f456SAndroid Build Coastguard Worker scalbln(_A1 __lcpp_x, long __lcpp_y) _NOEXCEPT {return ::scalbln((double)__lcpp_x, __lcpp_y);}
1482*58b9f456SAndroid Build Coastguard Worker
1483*58b9f456SAndroid Build Coastguard Worker // scalbn
1484*58b9f456SAndroid Build Coastguard Worker
scalbn(float __lcpp_x,int __lcpp_y)1485*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float scalbn(float __lcpp_x, int __lcpp_y) _NOEXCEPT {return ::scalbnf(__lcpp_x, __lcpp_y);}
scalbn(long double __lcpp_x,int __lcpp_y)1486*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double scalbn(long double __lcpp_x, int __lcpp_y) _NOEXCEPT {return ::scalbnl(__lcpp_x, __lcpp_y);}
1487*58b9f456SAndroid Build Coastguard Worker
1488*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1489*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1490*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
scalbn(_A1 __lcpp_x,int __lcpp_y)1491*58b9f456SAndroid Build Coastguard Worker scalbn(_A1 __lcpp_x, int __lcpp_y) _NOEXCEPT {return ::scalbn((double)__lcpp_x, __lcpp_y);}
1492*58b9f456SAndroid Build Coastguard Worker
1493*58b9f456SAndroid Build Coastguard Worker // tgamma
1494*58b9f456SAndroid Build Coastguard Worker
tgamma(float __lcpp_x)1495*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float tgamma(float __lcpp_x) _NOEXCEPT {return ::tgammaf(__lcpp_x);}
tgamma(long double __lcpp_x)1496*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double tgamma(long double __lcpp_x) _NOEXCEPT {return ::tgammal(__lcpp_x);}
1497*58b9f456SAndroid Build Coastguard Worker
1498*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1499*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1500*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
tgamma(_A1 __lcpp_x)1501*58b9f456SAndroid Build Coastguard Worker tgamma(_A1 __lcpp_x) _NOEXCEPT {return ::tgamma((double)__lcpp_x);}
1502*58b9f456SAndroid Build Coastguard Worker
1503*58b9f456SAndroid Build Coastguard Worker // trunc
1504*58b9f456SAndroid Build Coastguard Worker
trunc(float __lcpp_x)1505*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY float trunc(float __lcpp_x) _NOEXCEPT {return ::truncf(__lcpp_x);}
trunc(long double __lcpp_x)1506*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY long double trunc(long double __lcpp_x) _NOEXCEPT {return ::truncl(__lcpp_x);}
1507*58b9f456SAndroid Build Coastguard Worker
1508*58b9f456SAndroid Build Coastguard Worker template <class _A1>
1509*58b9f456SAndroid Build Coastguard Worker inline _LIBCPP_INLINE_VISIBILITY
1510*58b9f456SAndroid Build Coastguard Worker typename std::enable_if<std::is_integral<_A1>::value, double>::type
trunc(_A1 __lcpp_x)1511*58b9f456SAndroid Build Coastguard Worker trunc(_A1 __lcpp_x) _NOEXCEPT {return ::trunc((double)__lcpp_x);}
1512*58b9f456SAndroid Build Coastguard Worker
1513*58b9f456SAndroid Build Coastguard Worker } // extern "C++"
1514*58b9f456SAndroid Build Coastguard Worker
1515*58b9f456SAndroid Build Coastguard Worker #endif // __cplusplus
1516*58b9f456SAndroid Build Coastguard Worker
1517*58b9f456SAndroid Build Coastguard Worker #else // _LIBCPP_MATH_H
1518*58b9f456SAndroid Build Coastguard Worker
1519*58b9f456SAndroid Build Coastguard Worker // This include lives outside the header guard in order to support an MSVC
1520*58b9f456SAndroid Build Coastguard Worker // extension which allows users to do:
1521*58b9f456SAndroid Build Coastguard Worker //
1522*58b9f456SAndroid Build Coastguard Worker // #define _USE_MATH_DEFINES
1523*58b9f456SAndroid Build Coastguard Worker // #include <math.h>
1524*58b9f456SAndroid Build Coastguard Worker //
1525*58b9f456SAndroid Build Coastguard Worker // and receive the definitions of mathematical constants, even if <math.h>
1526*58b9f456SAndroid Build Coastguard Worker // has previously been included.
1527*58b9f456SAndroid Build Coastguard Worker #if defined(_LIBCPP_MSVCRT) && defined(_USE_MATH_DEFINES)
1528*58b9f456SAndroid Build Coastguard Worker #include_next <math.h>
1529*58b9f456SAndroid Build Coastguard Worker #endif
1530*58b9f456SAndroid Build Coastguard Worker
1531*58b9f456SAndroid Build Coastguard Worker #endif // _LIBCPP_MATH_H
1532