9#ifndef __CLANG_TGMATH_H
10#define __CLANG_TGMATH_H
20#if defined(__APPLE__) && __STDC_HOSTED__ && __has_include_next(<tgmath.h>)
21# include_next <tgmath.h>
28#define _TG_ATTRSp __attribute__((__overloadable__))
29#define _TG_ATTRS __attribute__((__overloadable__, __always_inline__))
49#define __tg_promote1(__x) (__typeof__(__tg_promote(__x)))
50#define __tg_promote2(__x, __y) (__typeof__(__tg_promote(__x) + \
52#define __tg_promote3(__x, __y, __z) (__typeof__(__tg_promote(__x) + \
78static long double _Complex
80 __tg_acos(
long double _Complex __x) {
return cacosl(__x);}
83#define acos(__x) __tg_acos(__tg_promote1((__x))(__x))
103static double _Complex
107static long double _Complex
109 __tg_asin(
long double _Complex __x) {
return casinl(__x);}
112#define asin(__x) __tg_asin(__tg_promote1((__x))(__x))
132static double _Complex
136static long double _Complex
138 __tg_atan(
long double _Complex __x) {
return catanl(__x);}
141#define atan(__x) __tg_atan(__tg_promote1((__x))(__x))
161static double _Complex
165static long double _Complex
170#define acosh(__x) __tg_acosh(__tg_promote1((__x))(__x))
190static double _Complex
194static long double _Complex
199#define asinh(__x) __tg_asinh(__tg_promote1((__x))(__x))
219static double _Complex
223static long double _Complex
228#define atanh(__x) __tg_atanh(__tg_promote1((__x))(__x))
248static double _Complex
252static long double _Complex
254 __tg_cos(
long double _Complex __x) {
return ccosl(__x);}
257#define cos(__x) __tg_cos(__tg_promote1((__x))(__x))
277static double _Complex
281static long double _Complex
283 __tg_sin(
long double _Complex __x) {
return csinl(__x);}
286#define sin(__x) __tg_sin(__tg_promote1((__x))(__x))
306static double _Complex
310static long double _Complex
312 __tg_tan(
long double _Complex __x) {
return ctanl(__x);}
315#define tan(__x) __tg_tan(__tg_promote1((__x))(__x))
335static double _Complex
339static long double _Complex
341 __tg_cosh(
long double _Complex __x) {
return ccoshl(__x);}
344#define cosh(__x) __tg_cosh(__tg_promote1((__x))(__x))
364static double _Complex
368static long double _Complex
370 __tg_sinh(
long double _Complex __x) {
return csinhl(__x);}
373#define sinh(__x) __tg_sinh(__tg_promote1((__x))(__x))
393static double _Complex
397static long double _Complex
399 __tg_tanh(
long double _Complex __x) {
return ctanhl(__x);}
402#define tanh(__x) __tg_tanh(__tg_promote1((__x))(__x))
422static double _Complex
426static long double _Complex
428 __tg_exp(
long double _Complex __x) {
return cexpl(__x);}
431#define exp(__x) __tg_exp(__tg_promote1((__x))(__x))
451static double _Complex
455static long double _Complex
457 __tg_log(
long double _Complex __x) {
return clogl(__x);}
460#define log(__x) __tg_log(__tg_promote1((__x))(__x))
480static double _Complex
484static long double _Complex
487 {
return cpowl(__x,
__y);}
490#define pow(__x, __y) __tg_pow(__tg_promote2((__x), (__y))(__x), \
491 __tg_promote2((__x), (__y))(__y))
511static double _Complex
515static long double _Complex
517 __tg_sqrt(
long double _Complex __x) {
return csqrtl(__x);}
520#define sqrt(__x) __tg_sqrt(__tg_promote1((__x))(__x))
546 __tg_fabs(
long double _Complex __x) {
return cabsl(__x);}
549#define fabs(__x) __tg_fabs(__tg_promote1((__x))(__x))
566#define atan2(__x, __y) __tg_atan2(__tg_promote2((__x), (__y))(__x), \
567 __tg_promote2((__x), (__y))(__y))
584#define cbrt(__x) __tg_cbrt(__tg_promote1((__x))(__x))
601#define ceil(__x) __tg_ceil(__tg_promote1((__x))(__x))
618#define copysign(__x, __y) __tg_copysign(__tg_promote2((__x), (__y))(__x), \
619 __tg_promote2((__x), (__y))(__y))
636#define erf(__x) __tg_erf(__tg_promote1((__x))(__x))
653#define erfc(__x) __tg_erfc(__tg_promote1((__x))(__x))
670#define exp2(__x) __tg_exp2(__tg_promote1((__x))(__x))
687#define expm1(__x) __tg_expm1(__tg_promote1((__x))(__x))
704#define fdim(__x, __y) __tg_fdim(__tg_promote2((__x), (__y))(__x), \
705 __tg_promote2((__x), (__y))(__y))
722#define floor(__x) __tg_floor(__tg_promote1((__x))(__x))
734 {
return fma(__x,
__y, __z);}
739 {
return fmal(__x,
__y, __z);}
742#define fma(__x, __y, __z) \
743 __tg_fma(__tg_promote3((__x), (__y), (__z))(__x), \
744 __tg_promote3((__x), (__y), (__z))(__y), \
745 __tg_promote3((__x), (__y), (__z))(__z))
762#define fmax(__x, __y) __tg_fmax(__tg_promote2((__x), (__y))(__x), \
763 __tg_promote2((__x), (__y))(__y))
780#define fmin(__x, __y) __tg_fmin(__tg_promote2((__x), (__y))(__x), \
781 __tg_promote2((__x), (__y))(__y))
798#define fmod(__x, __y) __tg_fmod(__tg_promote2((__x), (__y))(__x), \
799 __tg_promote2((__x), (__y))(__y))
816#define frexp(__x, __y) __tg_frexp(__tg_promote1((__x))(__x), __y)
833#define hypot(__x, __y) __tg_hypot(__tg_promote2((__x), (__y))(__x), \
834 __tg_promote2((__x), (__y))(__y))
851#define ilogb(__x) __tg_ilogb(__tg_promote1((__x))(__x))
868#define ldexp(__x, __y) __tg_ldexp(__tg_promote1((__x))(__x), __y)
885#define lgamma(__x) __tg_lgamma(__tg_promote1((__x))(__x))
902#define llrint(__x) __tg_llrint(__tg_promote1((__x))(__x))
919#define llround(__x) __tg_llround(__tg_promote1((__x))(__x))
936#define log10(__x) __tg_log10(__tg_promote1((__x))(__x))
953#define log1p(__x) __tg_log1p(__tg_promote1((__x))(__x))
970#define log2(__x) __tg_log2(__tg_promote1((__x))(__x))
987#define logb(__x) __tg_logb(__tg_promote1((__x))(__x))
1004#define lrint(__x) __tg_lrint(__tg_promote1((__x))(__x))
1021#define lround(__x) __tg_lround(__tg_promote1((__x))(__x))
1038#define nearbyint(__x) __tg_nearbyint(__tg_promote1((__x))(__x))
1055#define nextafter(__x, __y) __tg_nextafter(__tg_promote2((__x), (__y))(__x), \
1056 __tg_promote2((__x), (__y))(__y))
1073#define nexttoward(__x, __y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y))
1090#define remainder(__x, __y) __tg_remainder(__tg_promote2((__x), (__y))(__x), \
1091 __tg_promote2((__x), (__y))(__y))
1108 {
return remquol(__x,
__y, __z);}
1111#define remquo(__x, __y, __z) \
1112 __tg_remquo(__tg_promote2((__x), (__y))(__x), \
1113 __tg_promote2((__x), (__y))(__y), \
1131#define rint(__x) __tg_rint(__tg_promote1((__x))(__x))
1148#define round(__x) __tg_round(__tg_promote1((__x))(__x))
1165#define scalbn(__x, __y) __tg_scalbn(__tg_promote1((__x))(__x), __y)
1182#define scalbln(__x, __y) __tg_scalbln(__tg_promote1((__x))(__x), __y)
1199#define tgamma(__x) __tg_tgamma(__tg_promote1((__x))(__x))
1216#define trunc(__x) __tg_trunc(__tg_promote1((__x))(__x))
1245#define carg(__x) __tg_carg(__tg_promote1((__x))(__x))
1274#define cimag(__x) __tg_cimag(__tg_promote1((__x))(__x))
1278static float _Complex
1282static double _Complex
1286static long double _Complex
1290static float _Complex
1294static double _Complex
1298static long double _Complex
1303#define conj(__x) __tg_conj(__tg_promote1((__x))(__x))
1307static float _Complex
1311static double _Complex
1315static long double _Complex
1319static float _Complex
1323static double _Complex
1327static long double _Complex
1332#define cproj(__x) __tg_cproj(__tg_promote1((__x))(__x))
1361#define creal(__x) __tg_creal(__tg_promote1((__x))(__x))
__DEVICE__ float fabsf(float __a)
__DEVICE__ float fmodf(float __a, float __b)
__DEVICE__ float remainderf(float __a, float __b)
__DEVICE__ float exp2f(float __a)
__DEVICE__ float acosf(float __a)
__DEVICE__ float fmaf(float __a, float __b, float __c)
__DEVICE__ float cbrtf(float __a)
__DEVICE__ float remquof(float __a, float __b, int *__c)
__DEVICE__ float tanf(float __a)
__DEVICE__ float nextafterf(float __a, float __b)
__DEVICE__ float fmaxf(float __a, float __b)
__DEVICE__ float fminf(float __a, float __b)
__DEVICE__ float log2f(float __a)
__DEVICE__ float copysignf(float __a, float __b)
__DEVICE__ float truncf(float __a)
__DEVICE__ float fdimf(float __a, float __b)
__DEVICE__ long lrintf(float __a)
__DEVICE__ long long llrintf(float __a)
__DEVICE__ float cosf(float __a)
__DEVICE__ float sinf(float __a)
__DEVICE__ float logf(float __a)
__DEVICE__ float erff(float __a)
__DEVICE__ float floorf(float __f)
__DEVICE__ float ceilf(float __a)
__DEVICE__ float nearbyintf(float __a)
__DEVICE__ float atanf(float __a)
__DEVICE__ float atanhf(float __a)
__DEVICE__ float tanhf(float __a)
__DEVICE__ float rintf(float __a)
__DEVICE__ float atan2f(float __a, float __b)
__DEVICE__ float sinhf(float __a)
__DEVICE__ float acoshf(float __a)
__DEVICE__ float log10f(float __a)
__DEVICE__ float ldexpf(float __a, int __b)
__DEVICE__ float logbf(float __a)
__DEVICE__ float coshf(float __a)
__DEVICE__ float asinhf(float __a)
__DEVICE__ float roundf(float __a)
__DEVICE__ long lroundf(float __a)
__DEVICE__ float scalbnf(float __a, int __b)
__DEVICE__ float erfcf(float __a)
__DEVICE__ int ilogbf(float __a)
__DEVICE__ float powf(float __a, float __b)
__DEVICE__ float frexpf(float __a, int *__b)
__DEVICE__ float sqrtf(float __a)
__DEVICE__ float expf(float __a)
__DEVICE__ float expm1f(float __a)
__DEVICE__ float scalblnf(float __a, long __b)
__DEVICE__ float tgammaf(float __a)
__DEVICE__ float log1pf(float __a)
__DEVICE__ float lgammaf(float __a)
__DEVICE__ long long llroundf(float __a)
__DEVICE__ float hypotf(float __a, float __b)
__DEVICE__ float asinf(float __a)
_Float16 __2f16 __attribute__((ext_vector_type(2)))
Zeroes the upper 128 bits (bits 255:128) of all YMM registers.
static __inline__ uint32_t uint32_t __y
static float _TG_ATTRS __tg_pow(float __x, float __y)
static float _TG_ATTRS __tg_log1p(float __x)
#define scalbln(__x, __y)
static float _TG_ATTRS __tg_exp2(float __x)
static float _TG_ATTRS __tg_cbrt(float __x)
static float _TG_ATTRS __tg_asinh(float __x)
static float _TG_ATTRS __tg_lgamma(float __x)
static float _TG_ATTRS __tg_tanh(float __x)
static float _TG_ATTRS __tg_remainder(float __x, float __y)
static float _TG_ATTRS __tg_fmax(float __x, float __y)
static float _TG_ATTRS __tg_remquo(float __x, float __y, int *__z)
static float _TG_ATTRS __tg_fmod(float __x, float __y)
#define copysign(__x, __y)
static float _TG_ATTRS __tg_cos(float __x)
static float _TG_ATTRS __tg_creal(float __x)
static float _TG_ATTRS __tg_expm1(float __x)
static float _TG_ATTRS __tg_sin(float __x)
#define remquo(__x, __y, __z)
#define nextafter(__x, __y)
static long long _TG_ATTRS __tg_llround(float __x)
static float _TG_ATTRS __tg_ceil(float __x)
static float _TG_ATTRS __tg_rint(float __x)
static float _TG_ATTRS __tg_log2(float __x)
static float _Complex _TG_ATTRS __tg_cproj(float __x)
static float _TG_ATTRS __tg_cosh(float __x)
#define nexttoward(__x, __y)
static float _TG_ATTRS __tg_atanh(float __x)
static _Argument_type_is_not_arithmetic __tg_promote(...) __attribute__((__unavailable__
static float _TG_ATTRS __tg_nearbyint(float __x)
static long _TG_ATTRS __tg_lrint(float __x)
static int _TG_ATTRS __tg_ilogb(float __x)
static float _TG_ATTRS __tg_acos(float __x)
static float _TG_ATTRS __tg_scalbn(float __x, int __y)
static float _TG_ATTRS __tg_floor(float __x)
static float _Complex _TG_ATTRS __tg_conj(float __x)
static float _TG_ATTRS __tg_logb(float __x)
static float _TG_ATTRS __tg_acosh(float __x)
void _Argument_type_is_not_arithmetic
static float _TG_ATTRS __tg_tan(float __x)
static float _TG_ATTRS __tg_fabs(float __x)
static float _TG_ATTRS __tg_tgamma(float __x)
static long long _TG_ATTRS __tg_llrint(float __x)
static float _TG_ATTRS __tg_erf(float __x)
static float _TG_ATTRS __tg_sqrt(float __x)
static float _TG_ATTRS __tg_sinh(float __x)
static float _TG_ATTRS __tg_copysign(float __x, float __y)
static float _TG_ATTRS __tg_asin(float __x)
static float _TG_ATTRS __tg_erfc(float __x)
static float _TG_ATTRS __tg_hypot(float __x, float __y)
static float _TG_ATTRS __tg_atan(float __x)
static float _TG_ATTRS __tg_fma(float __x, float __y, float __z)
static float _TG_ATTRS __tg_trunc(float __x)
static float _TG_ATTRS __tg_exp(float __x)
static float _TG_ATTRS __tg_nextafter(float __x, float __y)
static float _TG_ATTRS __tg_round(float __x)
static float _TG_ATTRS __tg_log10(float __x)
static float _TG_ATTRS __tg_atan2(float __x, float __y)
#define remainder(__x, __y)
static long _TG_ATTRS __tg_lround(float __x)
static _Argument_type_is_not_arithmetic __overloadable__
static float _TG_ATTRS __tg_fdim(float __x, float __y)
static float _TG_ATTRS __tg_scalbln(float __x, long __y)
static float _TG_ATTRS __tg_fmin(float __x, float __y)
static float _TG_ATTRS __tg_log(float __x)
static float _TG_ATTRS __tg_nexttoward(float __x, long double __y)
static float _TG_ATTRS __tg_cimag(float __x)
static float _TG_ATTRS __tg_carg(float __x)
static float _TG_ATTRS __tg_frexp(float __x, int *__y)
static float _TG_ATTRS __tg_ldexp(float __x, int __y)
#define fma(__x, __y, __z)