1*bed243d3SAndroid Build Coastguard Worker /*===---- tgmath.h - Standard header for type generic math ----------------===*\ 2*bed243d3SAndroid Build Coastguard Worker * 3*bed243d3SAndroid Build Coastguard Worker * Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*bed243d3SAndroid Build Coastguard Worker * See https://llvm.org/LICENSE.txt for license information. 5*bed243d3SAndroid Build Coastguard Worker * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*bed243d3SAndroid Build Coastguard Worker * 7*bed243d3SAndroid Build Coastguard Worker \*===----------------------------------------------------------------------===*/ 8*bed243d3SAndroid Build Coastguard Worker 9*bed243d3SAndroid Build Coastguard Worker #ifndef __CLANG_TGMATH_H 10*bed243d3SAndroid Build Coastguard Worker #define __CLANG_TGMATH_H 11*bed243d3SAndroid Build Coastguard Worker 12*bed243d3SAndroid Build Coastguard Worker /* C99 7.22 Type-generic math <tgmath.h>. */ 13*bed243d3SAndroid Build Coastguard Worker #include <math.h> 14*bed243d3SAndroid Build Coastguard Worker 15*bed243d3SAndroid Build Coastguard Worker /* 16*bed243d3SAndroid Build Coastguard Worker * Allow additional definitions and implementation-defined values on Apple 17*bed243d3SAndroid Build Coastguard Worker * platforms. This is done after #include <math.h> to avoid depcycle conflicts 18*bed243d3SAndroid Build Coastguard Worker * between libcxx and darwin in C++ modules builds. 19*bed243d3SAndroid Build Coastguard Worker */ 20*bed243d3SAndroid Build Coastguard Worker #if defined(__APPLE__) && __STDC_HOSTED__ && __has_include_next(<tgmath.h>) 21*bed243d3SAndroid Build Coastguard Worker # include_next <tgmath.h> 22*bed243d3SAndroid Build Coastguard Worker #else 23*bed243d3SAndroid Build Coastguard Worker 24*bed243d3SAndroid Build Coastguard Worker /* C++ handles type genericity with overloading in math.h. */ 25*bed243d3SAndroid Build Coastguard Worker #ifndef __cplusplus 26*bed243d3SAndroid Build Coastguard Worker #include <complex.h> 27*bed243d3SAndroid Build Coastguard Worker 28*bed243d3SAndroid Build Coastguard Worker #define _TG_ATTRSp __attribute__((__overloadable__)) 29*bed243d3SAndroid Build Coastguard Worker #define _TG_ATTRS __attribute__((__overloadable__, __always_inline__)) 30*bed243d3SAndroid Build Coastguard Worker 31*bed243d3SAndroid Build Coastguard Worker // promotion 32*bed243d3SAndroid Build Coastguard Worker 33*bed243d3SAndroid Build Coastguard Worker typedef void _Argument_type_is_not_arithmetic; 34*bed243d3SAndroid Build Coastguard Worker static _Argument_type_is_not_arithmetic __tg_promote(...) 35*bed243d3SAndroid Build Coastguard Worker __attribute__((__unavailable__,__overloadable__)); 36*bed243d3SAndroid Build Coastguard Worker static double _TG_ATTRSp __tg_promote(int); 37*bed243d3SAndroid Build Coastguard Worker static double _TG_ATTRSp __tg_promote(unsigned int); 38*bed243d3SAndroid Build Coastguard Worker static double _TG_ATTRSp __tg_promote(long); 39*bed243d3SAndroid Build Coastguard Worker static double _TG_ATTRSp __tg_promote(unsigned long); 40*bed243d3SAndroid Build Coastguard Worker static double _TG_ATTRSp __tg_promote(long long); 41*bed243d3SAndroid Build Coastguard Worker static double _TG_ATTRSp __tg_promote(unsigned long long); 42*bed243d3SAndroid Build Coastguard Worker static float _TG_ATTRSp __tg_promote(float); 43*bed243d3SAndroid Build Coastguard Worker static double _TG_ATTRSp __tg_promote(double); 44*bed243d3SAndroid Build Coastguard Worker static long double _TG_ATTRSp __tg_promote(long double); 45*bed243d3SAndroid Build Coastguard Worker static float _Complex _TG_ATTRSp __tg_promote(float _Complex); 46*bed243d3SAndroid Build Coastguard Worker static double _Complex _TG_ATTRSp __tg_promote(double _Complex); 47*bed243d3SAndroid Build Coastguard Worker static long double _Complex _TG_ATTRSp __tg_promote(long double _Complex); 48*bed243d3SAndroid Build Coastguard Worker 49*bed243d3SAndroid Build Coastguard Worker #define __tg_promote1(__x) (__typeof__(__tg_promote(__x))) 50*bed243d3SAndroid Build Coastguard Worker #define __tg_promote2(__x, __y) (__typeof__(__tg_promote(__x) + \ 51*bed243d3SAndroid Build Coastguard Worker __tg_promote(__y))) 52*bed243d3SAndroid Build Coastguard Worker #define __tg_promote3(__x, __y, __z) (__typeof__(__tg_promote(__x) + \ 53*bed243d3SAndroid Build Coastguard Worker __tg_promote(__y) + \ 54*bed243d3SAndroid Build Coastguard Worker __tg_promote(__z))) 55*bed243d3SAndroid Build Coastguard Worker 56*bed243d3SAndroid Build Coastguard Worker // acos 57*bed243d3SAndroid Build Coastguard Worker 58*bed243d3SAndroid Build Coastguard Worker static float 59*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acos(float __x)60*bed243d3SAndroid Build Coastguard Worker __tg_acos(float __x) {return acosf(__x);} 61*bed243d3SAndroid Build Coastguard Worker 62*bed243d3SAndroid Build Coastguard Worker static double 63*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acos(double __x)64*bed243d3SAndroid Build Coastguard Worker __tg_acos(double __x) {return acos(__x);} 65*bed243d3SAndroid Build Coastguard Worker 66*bed243d3SAndroid Build Coastguard Worker static long double 67*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acos(long double __x)68*bed243d3SAndroid Build Coastguard Worker __tg_acos(long double __x) {return acosl(__x);} 69*bed243d3SAndroid Build Coastguard Worker 70*bed243d3SAndroid Build Coastguard Worker static float _Complex 71*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acos(float _Complex __x)72*bed243d3SAndroid Build Coastguard Worker __tg_acos(float _Complex __x) {return cacosf(__x);} 73*bed243d3SAndroid Build Coastguard Worker 74*bed243d3SAndroid Build Coastguard Worker static double _Complex 75*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acos(double _Complex __x)76*bed243d3SAndroid Build Coastguard Worker __tg_acos(double _Complex __x) {return cacos(__x);} 77*bed243d3SAndroid Build Coastguard Worker 78*bed243d3SAndroid Build Coastguard Worker static long double _Complex 79*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acos(long double _Complex __x)80*bed243d3SAndroid Build Coastguard Worker __tg_acos(long double _Complex __x) {return cacosl(__x);} 81*bed243d3SAndroid Build Coastguard Worker 82*bed243d3SAndroid Build Coastguard Worker #undef acos 83*bed243d3SAndroid Build Coastguard Worker #define acos(__x) __tg_acos(__tg_promote1((__x))(__x)) 84*bed243d3SAndroid Build Coastguard Worker 85*bed243d3SAndroid Build Coastguard Worker // asin 86*bed243d3SAndroid Build Coastguard Worker 87*bed243d3SAndroid Build Coastguard Worker static float 88*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asin(float __x)89*bed243d3SAndroid Build Coastguard Worker __tg_asin(float __x) {return asinf(__x);} 90*bed243d3SAndroid Build Coastguard Worker 91*bed243d3SAndroid Build Coastguard Worker static double 92*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asin(double __x)93*bed243d3SAndroid Build Coastguard Worker __tg_asin(double __x) {return asin(__x);} 94*bed243d3SAndroid Build Coastguard Worker 95*bed243d3SAndroid Build Coastguard Worker static long double 96*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asin(long double __x)97*bed243d3SAndroid Build Coastguard Worker __tg_asin(long double __x) {return asinl(__x);} 98*bed243d3SAndroid Build Coastguard Worker 99*bed243d3SAndroid Build Coastguard Worker static float _Complex 100*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asin(float _Complex __x)101*bed243d3SAndroid Build Coastguard Worker __tg_asin(float _Complex __x) {return casinf(__x);} 102*bed243d3SAndroid Build Coastguard Worker 103*bed243d3SAndroid Build Coastguard Worker static double _Complex 104*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asin(double _Complex __x)105*bed243d3SAndroid Build Coastguard Worker __tg_asin(double _Complex __x) {return casin(__x);} 106*bed243d3SAndroid Build Coastguard Worker 107*bed243d3SAndroid Build Coastguard Worker static long double _Complex 108*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asin(long double _Complex __x)109*bed243d3SAndroid Build Coastguard Worker __tg_asin(long double _Complex __x) {return casinl(__x);} 110*bed243d3SAndroid Build Coastguard Worker 111*bed243d3SAndroid Build Coastguard Worker #undef asin 112*bed243d3SAndroid Build Coastguard Worker #define asin(__x) __tg_asin(__tg_promote1((__x))(__x)) 113*bed243d3SAndroid Build Coastguard Worker 114*bed243d3SAndroid Build Coastguard Worker // atan 115*bed243d3SAndroid Build Coastguard Worker 116*bed243d3SAndroid Build Coastguard Worker static float 117*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan(float __x)118*bed243d3SAndroid Build Coastguard Worker __tg_atan(float __x) {return atanf(__x);} 119*bed243d3SAndroid Build Coastguard Worker 120*bed243d3SAndroid Build Coastguard Worker static double 121*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan(double __x)122*bed243d3SAndroid Build Coastguard Worker __tg_atan(double __x) {return atan(__x);} 123*bed243d3SAndroid Build Coastguard Worker 124*bed243d3SAndroid Build Coastguard Worker static long double 125*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan(long double __x)126*bed243d3SAndroid Build Coastguard Worker __tg_atan(long double __x) {return atanl(__x);} 127*bed243d3SAndroid Build Coastguard Worker 128*bed243d3SAndroid Build Coastguard Worker static float _Complex 129*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan(float _Complex __x)130*bed243d3SAndroid Build Coastguard Worker __tg_atan(float _Complex __x) {return catanf(__x);} 131*bed243d3SAndroid Build Coastguard Worker 132*bed243d3SAndroid Build Coastguard Worker static double _Complex 133*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan(double _Complex __x)134*bed243d3SAndroid Build Coastguard Worker __tg_atan(double _Complex __x) {return catan(__x);} 135*bed243d3SAndroid Build Coastguard Worker 136*bed243d3SAndroid Build Coastguard Worker static long double _Complex 137*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan(long double _Complex __x)138*bed243d3SAndroid Build Coastguard Worker __tg_atan(long double _Complex __x) {return catanl(__x);} 139*bed243d3SAndroid Build Coastguard Worker 140*bed243d3SAndroid Build Coastguard Worker #undef atan 141*bed243d3SAndroid Build Coastguard Worker #define atan(__x) __tg_atan(__tg_promote1((__x))(__x)) 142*bed243d3SAndroid Build Coastguard Worker 143*bed243d3SAndroid Build Coastguard Worker // acosh 144*bed243d3SAndroid Build Coastguard Worker 145*bed243d3SAndroid Build Coastguard Worker static float 146*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acosh(float __x)147*bed243d3SAndroid Build Coastguard Worker __tg_acosh(float __x) {return acoshf(__x);} 148*bed243d3SAndroid Build Coastguard Worker 149*bed243d3SAndroid Build Coastguard Worker static double 150*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acosh(double __x)151*bed243d3SAndroid Build Coastguard Worker __tg_acosh(double __x) {return acosh(__x);} 152*bed243d3SAndroid Build Coastguard Worker 153*bed243d3SAndroid Build Coastguard Worker static long double 154*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acosh(long double __x)155*bed243d3SAndroid Build Coastguard Worker __tg_acosh(long double __x) {return acoshl(__x);} 156*bed243d3SAndroid Build Coastguard Worker 157*bed243d3SAndroid Build Coastguard Worker static float _Complex 158*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acosh(float _Complex __x)159*bed243d3SAndroid Build Coastguard Worker __tg_acosh(float _Complex __x) {return cacoshf(__x);} 160*bed243d3SAndroid Build Coastguard Worker 161*bed243d3SAndroid Build Coastguard Worker static double _Complex 162*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acosh(double _Complex __x)163*bed243d3SAndroid Build Coastguard Worker __tg_acosh(double _Complex __x) {return cacosh(__x);} 164*bed243d3SAndroid Build Coastguard Worker 165*bed243d3SAndroid Build Coastguard Worker static long double _Complex 166*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_acosh(long double _Complex __x)167*bed243d3SAndroid Build Coastguard Worker __tg_acosh(long double _Complex __x) {return cacoshl(__x);} 168*bed243d3SAndroid Build Coastguard Worker 169*bed243d3SAndroid Build Coastguard Worker #undef acosh 170*bed243d3SAndroid Build Coastguard Worker #define acosh(__x) __tg_acosh(__tg_promote1((__x))(__x)) 171*bed243d3SAndroid Build Coastguard Worker 172*bed243d3SAndroid Build Coastguard Worker // asinh 173*bed243d3SAndroid Build Coastguard Worker 174*bed243d3SAndroid Build Coastguard Worker static float 175*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asinh(float __x)176*bed243d3SAndroid Build Coastguard Worker __tg_asinh(float __x) {return asinhf(__x);} 177*bed243d3SAndroid Build Coastguard Worker 178*bed243d3SAndroid Build Coastguard Worker static double 179*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asinh(double __x)180*bed243d3SAndroid Build Coastguard Worker __tg_asinh(double __x) {return asinh(__x);} 181*bed243d3SAndroid Build Coastguard Worker 182*bed243d3SAndroid Build Coastguard Worker static long double 183*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asinh(long double __x)184*bed243d3SAndroid Build Coastguard Worker __tg_asinh(long double __x) {return asinhl(__x);} 185*bed243d3SAndroid Build Coastguard Worker 186*bed243d3SAndroid Build Coastguard Worker static float _Complex 187*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asinh(float _Complex __x)188*bed243d3SAndroid Build Coastguard Worker __tg_asinh(float _Complex __x) {return casinhf(__x);} 189*bed243d3SAndroid Build Coastguard Worker 190*bed243d3SAndroid Build Coastguard Worker static double _Complex 191*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asinh(double _Complex __x)192*bed243d3SAndroid Build Coastguard Worker __tg_asinh(double _Complex __x) {return casinh(__x);} 193*bed243d3SAndroid Build Coastguard Worker 194*bed243d3SAndroid Build Coastguard Worker static long double _Complex 195*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_asinh(long double _Complex __x)196*bed243d3SAndroid Build Coastguard Worker __tg_asinh(long double _Complex __x) {return casinhl(__x);} 197*bed243d3SAndroid Build Coastguard Worker 198*bed243d3SAndroid Build Coastguard Worker #undef asinh 199*bed243d3SAndroid Build Coastguard Worker #define asinh(__x) __tg_asinh(__tg_promote1((__x))(__x)) 200*bed243d3SAndroid Build Coastguard Worker 201*bed243d3SAndroid Build Coastguard Worker // atanh 202*bed243d3SAndroid Build Coastguard Worker 203*bed243d3SAndroid Build Coastguard Worker static float 204*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atanh(float __x)205*bed243d3SAndroid Build Coastguard Worker __tg_atanh(float __x) {return atanhf(__x);} 206*bed243d3SAndroid Build Coastguard Worker 207*bed243d3SAndroid Build Coastguard Worker static double 208*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atanh(double __x)209*bed243d3SAndroid Build Coastguard Worker __tg_atanh(double __x) {return atanh(__x);} 210*bed243d3SAndroid Build Coastguard Worker 211*bed243d3SAndroid Build Coastguard Worker static long double 212*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atanh(long double __x)213*bed243d3SAndroid Build Coastguard Worker __tg_atanh(long double __x) {return atanhl(__x);} 214*bed243d3SAndroid Build Coastguard Worker 215*bed243d3SAndroid Build Coastguard Worker static float _Complex 216*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atanh(float _Complex __x)217*bed243d3SAndroid Build Coastguard Worker __tg_atanh(float _Complex __x) {return catanhf(__x);} 218*bed243d3SAndroid Build Coastguard Worker 219*bed243d3SAndroid Build Coastguard Worker static double _Complex 220*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atanh(double _Complex __x)221*bed243d3SAndroid Build Coastguard Worker __tg_atanh(double _Complex __x) {return catanh(__x);} 222*bed243d3SAndroid Build Coastguard Worker 223*bed243d3SAndroid Build Coastguard Worker static long double _Complex 224*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atanh(long double _Complex __x)225*bed243d3SAndroid Build Coastguard Worker __tg_atanh(long double _Complex __x) {return catanhl(__x);} 226*bed243d3SAndroid Build Coastguard Worker 227*bed243d3SAndroid Build Coastguard Worker #undef atanh 228*bed243d3SAndroid Build Coastguard Worker #define atanh(__x) __tg_atanh(__tg_promote1((__x))(__x)) 229*bed243d3SAndroid Build Coastguard Worker 230*bed243d3SAndroid Build Coastguard Worker // cos 231*bed243d3SAndroid Build Coastguard Worker 232*bed243d3SAndroid Build Coastguard Worker static float 233*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cos(float __x)234*bed243d3SAndroid Build Coastguard Worker __tg_cos(float __x) {return cosf(__x);} 235*bed243d3SAndroid Build Coastguard Worker 236*bed243d3SAndroid Build Coastguard Worker static double 237*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cos(double __x)238*bed243d3SAndroid Build Coastguard Worker __tg_cos(double __x) {return cos(__x);} 239*bed243d3SAndroid Build Coastguard Worker 240*bed243d3SAndroid Build Coastguard Worker static long double 241*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cos(long double __x)242*bed243d3SAndroid Build Coastguard Worker __tg_cos(long double __x) {return cosl(__x);} 243*bed243d3SAndroid Build Coastguard Worker 244*bed243d3SAndroid Build Coastguard Worker static float _Complex 245*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cos(float _Complex __x)246*bed243d3SAndroid Build Coastguard Worker __tg_cos(float _Complex __x) {return ccosf(__x);} 247*bed243d3SAndroid Build Coastguard Worker 248*bed243d3SAndroid Build Coastguard Worker static double _Complex 249*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cos(double _Complex __x)250*bed243d3SAndroid Build Coastguard Worker __tg_cos(double _Complex __x) {return ccos(__x);} 251*bed243d3SAndroid Build Coastguard Worker 252*bed243d3SAndroid Build Coastguard Worker static long double _Complex 253*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cos(long double _Complex __x)254*bed243d3SAndroid Build Coastguard Worker __tg_cos(long double _Complex __x) {return ccosl(__x);} 255*bed243d3SAndroid Build Coastguard Worker 256*bed243d3SAndroid Build Coastguard Worker #undef cos 257*bed243d3SAndroid Build Coastguard Worker #define cos(__x) __tg_cos(__tg_promote1((__x))(__x)) 258*bed243d3SAndroid Build Coastguard Worker 259*bed243d3SAndroid Build Coastguard Worker // sin 260*bed243d3SAndroid Build Coastguard Worker 261*bed243d3SAndroid Build Coastguard Worker static float 262*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sin(float __x)263*bed243d3SAndroid Build Coastguard Worker __tg_sin(float __x) {return sinf(__x);} 264*bed243d3SAndroid Build Coastguard Worker 265*bed243d3SAndroid Build Coastguard Worker static double 266*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sin(double __x)267*bed243d3SAndroid Build Coastguard Worker __tg_sin(double __x) {return sin(__x);} 268*bed243d3SAndroid Build Coastguard Worker 269*bed243d3SAndroid Build Coastguard Worker static long double 270*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sin(long double __x)271*bed243d3SAndroid Build Coastguard Worker __tg_sin(long double __x) {return sinl(__x);} 272*bed243d3SAndroid Build Coastguard Worker 273*bed243d3SAndroid Build Coastguard Worker static float _Complex 274*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sin(float _Complex __x)275*bed243d3SAndroid Build Coastguard Worker __tg_sin(float _Complex __x) {return csinf(__x);} 276*bed243d3SAndroid Build Coastguard Worker 277*bed243d3SAndroid Build Coastguard Worker static double _Complex 278*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sin(double _Complex __x)279*bed243d3SAndroid Build Coastguard Worker __tg_sin(double _Complex __x) {return csin(__x);} 280*bed243d3SAndroid Build Coastguard Worker 281*bed243d3SAndroid Build Coastguard Worker static long double _Complex 282*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sin(long double _Complex __x)283*bed243d3SAndroid Build Coastguard Worker __tg_sin(long double _Complex __x) {return csinl(__x);} 284*bed243d3SAndroid Build Coastguard Worker 285*bed243d3SAndroid Build Coastguard Worker #undef sin 286*bed243d3SAndroid Build Coastguard Worker #define sin(__x) __tg_sin(__tg_promote1((__x))(__x)) 287*bed243d3SAndroid Build Coastguard Worker 288*bed243d3SAndroid Build Coastguard Worker // tan 289*bed243d3SAndroid Build Coastguard Worker 290*bed243d3SAndroid Build Coastguard Worker static float 291*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tan(float __x)292*bed243d3SAndroid Build Coastguard Worker __tg_tan(float __x) {return tanf(__x);} 293*bed243d3SAndroid Build Coastguard Worker 294*bed243d3SAndroid Build Coastguard Worker static double 295*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tan(double __x)296*bed243d3SAndroid Build Coastguard Worker __tg_tan(double __x) {return tan(__x);} 297*bed243d3SAndroid Build Coastguard Worker 298*bed243d3SAndroid Build Coastguard Worker static long double 299*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tan(long double __x)300*bed243d3SAndroid Build Coastguard Worker __tg_tan(long double __x) {return tanl(__x);} 301*bed243d3SAndroid Build Coastguard Worker 302*bed243d3SAndroid Build Coastguard Worker static float _Complex 303*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tan(float _Complex __x)304*bed243d3SAndroid Build Coastguard Worker __tg_tan(float _Complex __x) {return ctanf(__x);} 305*bed243d3SAndroid Build Coastguard Worker 306*bed243d3SAndroid Build Coastguard Worker static double _Complex 307*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tan(double _Complex __x)308*bed243d3SAndroid Build Coastguard Worker __tg_tan(double _Complex __x) {return ctan(__x);} 309*bed243d3SAndroid Build Coastguard Worker 310*bed243d3SAndroid Build Coastguard Worker static long double _Complex 311*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tan(long double _Complex __x)312*bed243d3SAndroid Build Coastguard Worker __tg_tan(long double _Complex __x) {return ctanl(__x);} 313*bed243d3SAndroid Build Coastguard Worker 314*bed243d3SAndroid Build Coastguard Worker #undef tan 315*bed243d3SAndroid Build Coastguard Worker #define tan(__x) __tg_tan(__tg_promote1((__x))(__x)) 316*bed243d3SAndroid Build Coastguard Worker 317*bed243d3SAndroid Build Coastguard Worker // cosh 318*bed243d3SAndroid Build Coastguard Worker 319*bed243d3SAndroid Build Coastguard Worker static float 320*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cosh(float __x)321*bed243d3SAndroid Build Coastguard Worker __tg_cosh(float __x) {return coshf(__x);} 322*bed243d3SAndroid Build Coastguard Worker 323*bed243d3SAndroid Build Coastguard Worker static double 324*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cosh(double __x)325*bed243d3SAndroid Build Coastguard Worker __tg_cosh(double __x) {return cosh(__x);} 326*bed243d3SAndroid Build Coastguard Worker 327*bed243d3SAndroid Build Coastguard Worker static long double 328*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cosh(long double __x)329*bed243d3SAndroid Build Coastguard Worker __tg_cosh(long double __x) {return coshl(__x);} 330*bed243d3SAndroid Build Coastguard Worker 331*bed243d3SAndroid Build Coastguard Worker static float _Complex 332*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cosh(float _Complex __x)333*bed243d3SAndroid Build Coastguard Worker __tg_cosh(float _Complex __x) {return ccoshf(__x);} 334*bed243d3SAndroid Build Coastguard Worker 335*bed243d3SAndroid Build Coastguard Worker static double _Complex 336*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cosh(double _Complex __x)337*bed243d3SAndroid Build Coastguard Worker __tg_cosh(double _Complex __x) {return ccosh(__x);} 338*bed243d3SAndroid Build Coastguard Worker 339*bed243d3SAndroid Build Coastguard Worker static long double _Complex 340*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cosh(long double _Complex __x)341*bed243d3SAndroid Build Coastguard Worker __tg_cosh(long double _Complex __x) {return ccoshl(__x);} 342*bed243d3SAndroid Build Coastguard Worker 343*bed243d3SAndroid Build Coastguard Worker #undef cosh 344*bed243d3SAndroid Build Coastguard Worker #define cosh(__x) __tg_cosh(__tg_promote1((__x))(__x)) 345*bed243d3SAndroid Build Coastguard Worker 346*bed243d3SAndroid Build Coastguard Worker // sinh 347*bed243d3SAndroid Build Coastguard Worker 348*bed243d3SAndroid Build Coastguard Worker static float 349*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sinh(float __x)350*bed243d3SAndroid Build Coastguard Worker __tg_sinh(float __x) {return sinhf(__x);} 351*bed243d3SAndroid Build Coastguard Worker 352*bed243d3SAndroid Build Coastguard Worker static double 353*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sinh(double __x)354*bed243d3SAndroid Build Coastguard Worker __tg_sinh(double __x) {return sinh(__x);} 355*bed243d3SAndroid Build Coastguard Worker 356*bed243d3SAndroid Build Coastguard Worker static long double 357*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sinh(long double __x)358*bed243d3SAndroid Build Coastguard Worker __tg_sinh(long double __x) {return sinhl(__x);} 359*bed243d3SAndroid Build Coastguard Worker 360*bed243d3SAndroid Build Coastguard Worker static float _Complex 361*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sinh(float _Complex __x)362*bed243d3SAndroid Build Coastguard Worker __tg_sinh(float _Complex __x) {return csinhf(__x);} 363*bed243d3SAndroid Build Coastguard Worker 364*bed243d3SAndroid Build Coastguard Worker static double _Complex 365*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sinh(double _Complex __x)366*bed243d3SAndroid Build Coastguard Worker __tg_sinh(double _Complex __x) {return csinh(__x);} 367*bed243d3SAndroid Build Coastguard Worker 368*bed243d3SAndroid Build Coastguard Worker static long double _Complex 369*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sinh(long double _Complex __x)370*bed243d3SAndroid Build Coastguard Worker __tg_sinh(long double _Complex __x) {return csinhl(__x);} 371*bed243d3SAndroid Build Coastguard Worker 372*bed243d3SAndroid Build Coastguard Worker #undef sinh 373*bed243d3SAndroid Build Coastguard Worker #define sinh(__x) __tg_sinh(__tg_promote1((__x))(__x)) 374*bed243d3SAndroid Build Coastguard Worker 375*bed243d3SAndroid Build Coastguard Worker // tanh 376*bed243d3SAndroid Build Coastguard Worker 377*bed243d3SAndroid Build Coastguard Worker static float 378*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tanh(float __x)379*bed243d3SAndroid Build Coastguard Worker __tg_tanh(float __x) {return tanhf(__x);} 380*bed243d3SAndroid Build Coastguard Worker 381*bed243d3SAndroid Build Coastguard Worker static double 382*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tanh(double __x)383*bed243d3SAndroid Build Coastguard Worker __tg_tanh(double __x) {return tanh(__x);} 384*bed243d3SAndroid Build Coastguard Worker 385*bed243d3SAndroid Build Coastguard Worker static long double 386*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tanh(long double __x)387*bed243d3SAndroid Build Coastguard Worker __tg_tanh(long double __x) {return tanhl(__x);} 388*bed243d3SAndroid Build Coastguard Worker 389*bed243d3SAndroid Build Coastguard Worker static float _Complex 390*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tanh(float _Complex __x)391*bed243d3SAndroid Build Coastguard Worker __tg_tanh(float _Complex __x) {return ctanhf(__x);} 392*bed243d3SAndroid Build Coastguard Worker 393*bed243d3SAndroid Build Coastguard Worker static double _Complex 394*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tanh(double _Complex __x)395*bed243d3SAndroid Build Coastguard Worker __tg_tanh(double _Complex __x) {return ctanh(__x);} 396*bed243d3SAndroid Build Coastguard Worker 397*bed243d3SAndroid Build Coastguard Worker static long double _Complex 398*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tanh(long double _Complex __x)399*bed243d3SAndroid Build Coastguard Worker __tg_tanh(long double _Complex __x) {return ctanhl(__x);} 400*bed243d3SAndroid Build Coastguard Worker 401*bed243d3SAndroid Build Coastguard Worker #undef tanh 402*bed243d3SAndroid Build Coastguard Worker #define tanh(__x) __tg_tanh(__tg_promote1((__x))(__x)) 403*bed243d3SAndroid Build Coastguard Worker 404*bed243d3SAndroid Build Coastguard Worker // exp 405*bed243d3SAndroid Build Coastguard Worker 406*bed243d3SAndroid Build Coastguard Worker static float 407*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp(float __x)408*bed243d3SAndroid Build Coastguard Worker __tg_exp(float __x) {return expf(__x);} 409*bed243d3SAndroid Build Coastguard Worker 410*bed243d3SAndroid Build Coastguard Worker static double 411*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp(double __x)412*bed243d3SAndroid Build Coastguard Worker __tg_exp(double __x) {return exp(__x);} 413*bed243d3SAndroid Build Coastguard Worker 414*bed243d3SAndroid Build Coastguard Worker static long double 415*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp(long double __x)416*bed243d3SAndroid Build Coastguard Worker __tg_exp(long double __x) {return expl(__x);} 417*bed243d3SAndroid Build Coastguard Worker 418*bed243d3SAndroid Build Coastguard Worker static float _Complex 419*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp(float _Complex __x)420*bed243d3SAndroid Build Coastguard Worker __tg_exp(float _Complex __x) {return cexpf(__x);} 421*bed243d3SAndroid Build Coastguard Worker 422*bed243d3SAndroid Build Coastguard Worker static double _Complex 423*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp(double _Complex __x)424*bed243d3SAndroid Build Coastguard Worker __tg_exp(double _Complex __x) {return cexp(__x);} 425*bed243d3SAndroid Build Coastguard Worker 426*bed243d3SAndroid Build Coastguard Worker static long double _Complex 427*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp(long double _Complex __x)428*bed243d3SAndroid Build Coastguard Worker __tg_exp(long double _Complex __x) {return cexpl(__x);} 429*bed243d3SAndroid Build Coastguard Worker 430*bed243d3SAndroid Build Coastguard Worker #undef exp 431*bed243d3SAndroid Build Coastguard Worker #define exp(__x) __tg_exp(__tg_promote1((__x))(__x)) 432*bed243d3SAndroid Build Coastguard Worker 433*bed243d3SAndroid Build Coastguard Worker // log 434*bed243d3SAndroid Build Coastguard Worker 435*bed243d3SAndroid Build Coastguard Worker static float 436*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log(float __x)437*bed243d3SAndroid Build Coastguard Worker __tg_log(float __x) {return logf(__x);} 438*bed243d3SAndroid Build Coastguard Worker 439*bed243d3SAndroid Build Coastguard Worker static double 440*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log(double __x)441*bed243d3SAndroid Build Coastguard Worker __tg_log(double __x) {return log(__x);} 442*bed243d3SAndroid Build Coastguard Worker 443*bed243d3SAndroid Build Coastguard Worker static long double 444*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log(long double __x)445*bed243d3SAndroid Build Coastguard Worker __tg_log(long double __x) {return logl(__x);} 446*bed243d3SAndroid Build Coastguard Worker 447*bed243d3SAndroid Build Coastguard Worker static float _Complex 448*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log(float _Complex __x)449*bed243d3SAndroid Build Coastguard Worker __tg_log(float _Complex __x) {return clogf(__x);} 450*bed243d3SAndroid Build Coastguard Worker 451*bed243d3SAndroid Build Coastguard Worker static double _Complex 452*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log(double _Complex __x)453*bed243d3SAndroid Build Coastguard Worker __tg_log(double _Complex __x) {return clog(__x);} 454*bed243d3SAndroid Build Coastguard Worker 455*bed243d3SAndroid Build Coastguard Worker static long double _Complex 456*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log(long double _Complex __x)457*bed243d3SAndroid Build Coastguard Worker __tg_log(long double _Complex __x) {return clogl(__x);} 458*bed243d3SAndroid Build Coastguard Worker 459*bed243d3SAndroid Build Coastguard Worker #undef log 460*bed243d3SAndroid Build Coastguard Worker #define log(__x) __tg_log(__tg_promote1((__x))(__x)) 461*bed243d3SAndroid Build Coastguard Worker 462*bed243d3SAndroid Build Coastguard Worker // pow 463*bed243d3SAndroid Build Coastguard Worker 464*bed243d3SAndroid Build Coastguard Worker static float 465*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_pow(float __x,float __y)466*bed243d3SAndroid Build Coastguard Worker __tg_pow(float __x, float __y) {return powf(__x, __y);} 467*bed243d3SAndroid Build Coastguard Worker 468*bed243d3SAndroid Build Coastguard Worker static double 469*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_pow(double __x,double __y)470*bed243d3SAndroid Build Coastguard Worker __tg_pow(double __x, double __y) {return pow(__x, __y);} 471*bed243d3SAndroid Build Coastguard Worker 472*bed243d3SAndroid Build Coastguard Worker static long double 473*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_pow(long double __x,long double __y)474*bed243d3SAndroid Build Coastguard Worker __tg_pow(long double __x, long double __y) {return powl(__x, __y);} 475*bed243d3SAndroid Build Coastguard Worker 476*bed243d3SAndroid Build Coastguard Worker static float _Complex 477*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_pow(float _Complex __x,float _Complex __y)478*bed243d3SAndroid Build Coastguard Worker __tg_pow(float _Complex __x, float _Complex __y) {return cpowf(__x, __y);} 479*bed243d3SAndroid Build Coastguard Worker 480*bed243d3SAndroid Build Coastguard Worker static double _Complex 481*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_pow(double _Complex __x,double _Complex __y)482*bed243d3SAndroid Build Coastguard Worker __tg_pow(double _Complex __x, double _Complex __y) {return cpow(__x, __y);} 483*bed243d3SAndroid Build Coastguard Worker 484*bed243d3SAndroid Build Coastguard Worker static long double _Complex 485*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_pow(long double _Complex __x,long double _Complex __y)486*bed243d3SAndroid Build Coastguard Worker __tg_pow(long double _Complex __x, long double _Complex __y) 487*bed243d3SAndroid Build Coastguard Worker {return cpowl(__x, __y);} 488*bed243d3SAndroid Build Coastguard Worker 489*bed243d3SAndroid Build Coastguard Worker #undef pow 490*bed243d3SAndroid Build Coastguard Worker #define pow(__x, __y) __tg_pow(__tg_promote2((__x), (__y))(__x), \ 491*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 492*bed243d3SAndroid Build Coastguard Worker 493*bed243d3SAndroid Build Coastguard Worker // sqrt 494*bed243d3SAndroid Build Coastguard Worker 495*bed243d3SAndroid Build Coastguard Worker static float 496*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sqrt(float __x)497*bed243d3SAndroid Build Coastguard Worker __tg_sqrt(float __x) {return sqrtf(__x);} 498*bed243d3SAndroid Build Coastguard Worker 499*bed243d3SAndroid Build Coastguard Worker static double 500*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sqrt(double __x)501*bed243d3SAndroid Build Coastguard Worker __tg_sqrt(double __x) {return sqrt(__x);} 502*bed243d3SAndroid Build Coastguard Worker 503*bed243d3SAndroid Build Coastguard Worker static long double 504*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sqrt(long double __x)505*bed243d3SAndroid Build Coastguard Worker __tg_sqrt(long double __x) {return sqrtl(__x);} 506*bed243d3SAndroid Build Coastguard Worker 507*bed243d3SAndroid Build Coastguard Worker static float _Complex 508*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sqrt(float _Complex __x)509*bed243d3SAndroid Build Coastguard Worker __tg_sqrt(float _Complex __x) {return csqrtf(__x);} 510*bed243d3SAndroid Build Coastguard Worker 511*bed243d3SAndroid Build Coastguard Worker static double _Complex 512*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sqrt(double _Complex __x)513*bed243d3SAndroid Build Coastguard Worker __tg_sqrt(double _Complex __x) {return csqrt(__x);} 514*bed243d3SAndroid Build Coastguard Worker 515*bed243d3SAndroid Build Coastguard Worker static long double _Complex 516*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_sqrt(long double _Complex __x)517*bed243d3SAndroid Build Coastguard Worker __tg_sqrt(long double _Complex __x) {return csqrtl(__x);} 518*bed243d3SAndroid Build Coastguard Worker 519*bed243d3SAndroid Build Coastguard Worker #undef sqrt 520*bed243d3SAndroid Build Coastguard Worker #define sqrt(__x) __tg_sqrt(__tg_promote1((__x))(__x)) 521*bed243d3SAndroid Build Coastguard Worker 522*bed243d3SAndroid Build Coastguard Worker // fabs 523*bed243d3SAndroid Build Coastguard Worker 524*bed243d3SAndroid Build Coastguard Worker static float 525*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fabs(float __x)526*bed243d3SAndroid Build Coastguard Worker __tg_fabs(float __x) {return fabsf(__x);} 527*bed243d3SAndroid Build Coastguard Worker 528*bed243d3SAndroid Build Coastguard Worker static double 529*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fabs(double __x)530*bed243d3SAndroid Build Coastguard Worker __tg_fabs(double __x) {return fabs(__x);} 531*bed243d3SAndroid Build Coastguard Worker 532*bed243d3SAndroid Build Coastguard Worker static long double 533*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fabs(long double __x)534*bed243d3SAndroid Build Coastguard Worker __tg_fabs(long double __x) {return fabsl(__x);} 535*bed243d3SAndroid Build Coastguard Worker 536*bed243d3SAndroid Build Coastguard Worker static float 537*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fabs(float _Complex __x)538*bed243d3SAndroid Build Coastguard Worker __tg_fabs(float _Complex __x) {return cabsf(__x);} 539*bed243d3SAndroid Build Coastguard Worker 540*bed243d3SAndroid Build Coastguard Worker static double 541*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fabs(double _Complex __x)542*bed243d3SAndroid Build Coastguard Worker __tg_fabs(double _Complex __x) {return cabs(__x);} 543*bed243d3SAndroid Build Coastguard Worker 544*bed243d3SAndroid Build Coastguard Worker static long double 545*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fabs(long double _Complex __x)546*bed243d3SAndroid Build Coastguard Worker __tg_fabs(long double _Complex __x) {return cabsl(__x);} 547*bed243d3SAndroid Build Coastguard Worker 548*bed243d3SAndroid Build Coastguard Worker #undef fabs 549*bed243d3SAndroid Build Coastguard Worker #define fabs(__x) __tg_fabs(__tg_promote1((__x))(__x)) 550*bed243d3SAndroid Build Coastguard Worker 551*bed243d3SAndroid Build Coastguard Worker // atan2 552*bed243d3SAndroid Build Coastguard Worker 553*bed243d3SAndroid Build Coastguard Worker static float 554*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan2(float __x,float __y)555*bed243d3SAndroid Build Coastguard Worker __tg_atan2(float __x, float __y) {return atan2f(__x, __y);} 556*bed243d3SAndroid Build Coastguard Worker 557*bed243d3SAndroid Build Coastguard Worker static double 558*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan2(double __x,double __y)559*bed243d3SAndroid Build Coastguard Worker __tg_atan2(double __x, double __y) {return atan2(__x, __y);} 560*bed243d3SAndroid Build Coastguard Worker 561*bed243d3SAndroid Build Coastguard Worker static long double 562*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_atan2(long double __x,long double __y)563*bed243d3SAndroid Build Coastguard Worker __tg_atan2(long double __x, long double __y) {return atan2l(__x, __y);} 564*bed243d3SAndroid Build Coastguard Worker 565*bed243d3SAndroid Build Coastguard Worker #undef atan2 566*bed243d3SAndroid Build Coastguard Worker #define atan2(__x, __y) __tg_atan2(__tg_promote2((__x), (__y))(__x), \ 567*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 568*bed243d3SAndroid Build Coastguard Worker 569*bed243d3SAndroid Build Coastguard Worker // cbrt 570*bed243d3SAndroid Build Coastguard Worker 571*bed243d3SAndroid Build Coastguard Worker static float 572*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cbrt(float __x)573*bed243d3SAndroid Build Coastguard Worker __tg_cbrt(float __x) {return cbrtf(__x);} 574*bed243d3SAndroid Build Coastguard Worker 575*bed243d3SAndroid Build Coastguard Worker static double 576*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cbrt(double __x)577*bed243d3SAndroid Build Coastguard Worker __tg_cbrt(double __x) {return cbrt(__x);} 578*bed243d3SAndroid Build Coastguard Worker 579*bed243d3SAndroid Build Coastguard Worker static long double 580*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cbrt(long double __x)581*bed243d3SAndroid Build Coastguard Worker __tg_cbrt(long double __x) {return cbrtl(__x);} 582*bed243d3SAndroid Build Coastguard Worker 583*bed243d3SAndroid Build Coastguard Worker #undef cbrt 584*bed243d3SAndroid Build Coastguard Worker #define cbrt(__x) __tg_cbrt(__tg_promote1((__x))(__x)) 585*bed243d3SAndroid Build Coastguard Worker 586*bed243d3SAndroid Build Coastguard Worker // ceil 587*bed243d3SAndroid Build Coastguard Worker 588*bed243d3SAndroid Build Coastguard Worker static float 589*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ceil(float __x)590*bed243d3SAndroid Build Coastguard Worker __tg_ceil(float __x) {return ceilf(__x);} 591*bed243d3SAndroid Build Coastguard Worker 592*bed243d3SAndroid Build Coastguard Worker static double 593*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ceil(double __x)594*bed243d3SAndroid Build Coastguard Worker __tg_ceil(double __x) {return ceil(__x);} 595*bed243d3SAndroid Build Coastguard Worker 596*bed243d3SAndroid Build Coastguard Worker static long double 597*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ceil(long double __x)598*bed243d3SAndroid Build Coastguard Worker __tg_ceil(long double __x) {return ceill(__x);} 599*bed243d3SAndroid Build Coastguard Worker 600*bed243d3SAndroid Build Coastguard Worker #undef ceil 601*bed243d3SAndroid Build Coastguard Worker #define ceil(__x) __tg_ceil(__tg_promote1((__x))(__x)) 602*bed243d3SAndroid Build Coastguard Worker 603*bed243d3SAndroid Build Coastguard Worker // copysign 604*bed243d3SAndroid Build Coastguard Worker 605*bed243d3SAndroid Build Coastguard Worker static float 606*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_copysign(float __x,float __y)607*bed243d3SAndroid Build Coastguard Worker __tg_copysign(float __x, float __y) {return copysignf(__x, __y);} 608*bed243d3SAndroid Build Coastguard Worker 609*bed243d3SAndroid Build Coastguard Worker static double 610*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_copysign(double __x,double __y)611*bed243d3SAndroid Build Coastguard Worker __tg_copysign(double __x, double __y) {return copysign(__x, __y);} 612*bed243d3SAndroid Build Coastguard Worker 613*bed243d3SAndroid Build Coastguard Worker static long double 614*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_copysign(long double __x,long double __y)615*bed243d3SAndroid Build Coastguard Worker __tg_copysign(long double __x, long double __y) {return copysignl(__x, __y);} 616*bed243d3SAndroid Build Coastguard Worker 617*bed243d3SAndroid Build Coastguard Worker #undef copysign 618*bed243d3SAndroid Build Coastguard Worker #define copysign(__x, __y) __tg_copysign(__tg_promote2((__x), (__y))(__x), \ 619*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 620*bed243d3SAndroid Build Coastguard Worker 621*bed243d3SAndroid Build Coastguard Worker // erf 622*bed243d3SAndroid Build Coastguard Worker 623*bed243d3SAndroid Build Coastguard Worker static float 624*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_erf(float __x)625*bed243d3SAndroid Build Coastguard Worker __tg_erf(float __x) {return erff(__x);} 626*bed243d3SAndroid Build Coastguard Worker 627*bed243d3SAndroid Build Coastguard Worker static double 628*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_erf(double __x)629*bed243d3SAndroid Build Coastguard Worker __tg_erf(double __x) {return erf(__x);} 630*bed243d3SAndroid Build Coastguard Worker 631*bed243d3SAndroid Build Coastguard Worker static long double 632*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_erf(long double __x)633*bed243d3SAndroid Build Coastguard Worker __tg_erf(long double __x) {return erfl(__x);} 634*bed243d3SAndroid Build Coastguard Worker 635*bed243d3SAndroid Build Coastguard Worker #undef erf 636*bed243d3SAndroid Build Coastguard Worker #define erf(__x) __tg_erf(__tg_promote1((__x))(__x)) 637*bed243d3SAndroid Build Coastguard Worker 638*bed243d3SAndroid Build Coastguard Worker // erfc 639*bed243d3SAndroid Build Coastguard Worker 640*bed243d3SAndroid Build Coastguard Worker static float 641*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_erfc(float __x)642*bed243d3SAndroid Build Coastguard Worker __tg_erfc(float __x) {return erfcf(__x);} 643*bed243d3SAndroid Build Coastguard Worker 644*bed243d3SAndroid Build Coastguard Worker static double 645*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_erfc(double __x)646*bed243d3SAndroid Build Coastguard Worker __tg_erfc(double __x) {return erfc(__x);} 647*bed243d3SAndroid Build Coastguard Worker 648*bed243d3SAndroid Build Coastguard Worker static long double 649*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_erfc(long double __x)650*bed243d3SAndroid Build Coastguard Worker __tg_erfc(long double __x) {return erfcl(__x);} 651*bed243d3SAndroid Build Coastguard Worker 652*bed243d3SAndroid Build Coastguard Worker #undef erfc 653*bed243d3SAndroid Build Coastguard Worker #define erfc(__x) __tg_erfc(__tg_promote1((__x))(__x)) 654*bed243d3SAndroid Build Coastguard Worker 655*bed243d3SAndroid Build Coastguard Worker // exp2 656*bed243d3SAndroid Build Coastguard Worker 657*bed243d3SAndroid Build Coastguard Worker static float 658*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp2(float __x)659*bed243d3SAndroid Build Coastguard Worker __tg_exp2(float __x) {return exp2f(__x);} 660*bed243d3SAndroid Build Coastguard Worker 661*bed243d3SAndroid Build Coastguard Worker static double 662*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp2(double __x)663*bed243d3SAndroid Build Coastguard Worker __tg_exp2(double __x) {return exp2(__x);} 664*bed243d3SAndroid Build Coastguard Worker 665*bed243d3SAndroid Build Coastguard Worker static long double 666*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_exp2(long double __x)667*bed243d3SAndroid Build Coastguard Worker __tg_exp2(long double __x) {return exp2l(__x);} 668*bed243d3SAndroid Build Coastguard Worker 669*bed243d3SAndroid Build Coastguard Worker #undef exp2 670*bed243d3SAndroid Build Coastguard Worker #define exp2(__x) __tg_exp2(__tg_promote1((__x))(__x)) 671*bed243d3SAndroid Build Coastguard Worker 672*bed243d3SAndroid Build Coastguard Worker // expm1 673*bed243d3SAndroid Build Coastguard Worker 674*bed243d3SAndroid Build Coastguard Worker static float 675*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_expm1(float __x)676*bed243d3SAndroid Build Coastguard Worker __tg_expm1(float __x) {return expm1f(__x);} 677*bed243d3SAndroid Build Coastguard Worker 678*bed243d3SAndroid Build Coastguard Worker static double 679*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_expm1(double __x)680*bed243d3SAndroid Build Coastguard Worker __tg_expm1(double __x) {return expm1(__x);} 681*bed243d3SAndroid Build Coastguard Worker 682*bed243d3SAndroid Build Coastguard Worker static long double 683*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_expm1(long double __x)684*bed243d3SAndroid Build Coastguard Worker __tg_expm1(long double __x) {return expm1l(__x);} 685*bed243d3SAndroid Build Coastguard Worker 686*bed243d3SAndroid Build Coastguard Worker #undef expm1 687*bed243d3SAndroid Build Coastguard Worker #define expm1(__x) __tg_expm1(__tg_promote1((__x))(__x)) 688*bed243d3SAndroid Build Coastguard Worker 689*bed243d3SAndroid Build Coastguard Worker // fdim 690*bed243d3SAndroid Build Coastguard Worker 691*bed243d3SAndroid Build Coastguard Worker static float 692*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fdim(float __x,float __y)693*bed243d3SAndroid Build Coastguard Worker __tg_fdim(float __x, float __y) {return fdimf(__x, __y);} 694*bed243d3SAndroid Build Coastguard Worker 695*bed243d3SAndroid Build Coastguard Worker static double 696*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fdim(double __x,double __y)697*bed243d3SAndroid Build Coastguard Worker __tg_fdim(double __x, double __y) {return fdim(__x, __y);} 698*bed243d3SAndroid Build Coastguard Worker 699*bed243d3SAndroid Build Coastguard Worker static long double 700*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fdim(long double __x,long double __y)701*bed243d3SAndroid Build Coastguard Worker __tg_fdim(long double __x, long double __y) {return fdiml(__x, __y);} 702*bed243d3SAndroid Build Coastguard Worker 703*bed243d3SAndroid Build Coastguard Worker #undef fdim 704*bed243d3SAndroid Build Coastguard Worker #define fdim(__x, __y) __tg_fdim(__tg_promote2((__x), (__y))(__x), \ 705*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 706*bed243d3SAndroid Build Coastguard Worker 707*bed243d3SAndroid Build Coastguard Worker // floor 708*bed243d3SAndroid Build Coastguard Worker 709*bed243d3SAndroid Build Coastguard Worker static float 710*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_floor(float __x)711*bed243d3SAndroid Build Coastguard Worker __tg_floor(float __x) {return floorf(__x);} 712*bed243d3SAndroid Build Coastguard Worker 713*bed243d3SAndroid Build Coastguard Worker static double 714*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_floor(double __x)715*bed243d3SAndroid Build Coastguard Worker __tg_floor(double __x) {return floor(__x);} 716*bed243d3SAndroid Build Coastguard Worker 717*bed243d3SAndroid Build Coastguard Worker static long double 718*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_floor(long double __x)719*bed243d3SAndroid Build Coastguard Worker __tg_floor(long double __x) {return floorl(__x);} 720*bed243d3SAndroid Build Coastguard Worker 721*bed243d3SAndroid Build Coastguard Worker #undef floor 722*bed243d3SAndroid Build Coastguard Worker #define floor(__x) __tg_floor(__tg_promote1((__x))(__x)) 723*bed243d3SAndroid Build Coastguard Worker 724*bed243d3SAndroid Build Coastguard Worker // fma 725*bed243d3SAndroid Build Coastguard Worker 726*bed243d3SAndroid Build Coastguard Worker static float 727*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fma(float __x,float __y,float __z)728*bed243d3SAndroid Build Coastguard Worker __tg_fma(float __x, float __y, float __z) 729*bed243d3SAndroid Build Coastguard Worker {return fmaf(__x, __y, __z);} 730*bed243d3SAndroid Build Coastguard Worker 731*bed243d3SAndroid Build Coastguard Worker static double 732*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fma(double __x,double __y,double __z)733*bed243d3SAndroid Build Coastguard Worker __tg_fma(double __x, double __y, double __z) 734*bed243d3SAndroid Build Coastguard Worker {return fma(__x, __y, __z);} 735*bed243d3SAndroid Build Coastguard Worker 736*bed243d3SAndroid Build Coastguard Worker static long double 737*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fma(long double __x,long double __y,long double __z)738*bed243d3SAndroid Build Coastguard Worker __tg_fma(long double __x,long double __y, long double __z) 739*bed243d3SAndroid Build Coastguard Worker {return fmal(__x, __y, __z);} 740*bed243d3SAndroid Build Coastguard Worker 741*bed243d3SAndroid Build Coastguard Worker #undef fma 742*bed243d3SAndroid Build Coastguard Worker #define fma(__x, __y, __z) \ 743*bed243d3SAndroid Build Coastguard Worker __tg_fma(__tg_promote3((__x), (__y), (__z))(__x), \ 744*bed243d3SAndroid Build Coastguard Worker __tg_promote3((__x), (__y), (__z))(__y), \ 745*bed243d3SAndroid Build Coastguard Worker __tg_promote3((__x), (__y), (__z))(__z)) 746*bed243d3SAndroid Build Coastguard Worker 747*bed243d3SAndroid Build Coastguard Worker // fmax 748*bed243d3SAndroid Build Coastguard Worker 749*bed243d3SAndroid Build Coastguard Worker static float 750*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmax(float __x,float __y)751*bed243d3SAndroid Build Coastguard Worker __tg_fmax(float __x, float __y) {return fmaxf(__x, __y);} 752*bed243d3SAndroid Build Coastguard Worker 753*bed243d3SAndroid Build Coastguard Worker static double 754*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmax(double __x,double __y)755*bed243d3SAndroid Build Coastguard Worker __tg_fmax(double __x, double __y) {return fmax(__x, __y);} 756*bed243d3SAndroid Build Coastguard Worker 757*bed243d3SAndroid Build Coastguard Worker static long double 758*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmax(long double __x,long double __y)759*bed243d3SAndroid Build Coastguard Worker __tg_fmax(long double __x, long double __y) {return fmaxl(__x, __y);} 760*bed243d3SAndroid Build Coastguard Worker 761*bed243d3SAndroid Build Coastguard Worker #undef fmax 762*bed243d3SAndroid Build Coastguard Worker #define fmax(__x, __y) __tg_fmax(__tg_promote2((__x), (__y))(__x), \ 763*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 764*bed243d3SAndroid Build Coastguard Worker 765*bed243d3SAndroid Build Coastguard Worker // fmin 766*bed243d3SAndroid Build Coastguard Worker 767*bed243d3SAndroid Build Coastguard Worker static float 768*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmin(float __x,float __y)769*bed243d3SAndroid Build Coastguard Worker __tg_fmin(float __x, float __y) {return fminf(__x, __y);} 770*bed243d3SAndroid Build Coastguard Worker 771*bed243d3SAndroid Build Coastguard Worker static double 772*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmin(double __x,double __y)773*bed243d3SAndroid Build Coastguard Worker __tg_fmin(double __x, double __y) {return fmin(__x, __y);} 774*bed243d3SAndroid Build Coastguard Worker 775*bed243d3SAndroid Build Coastguard Worker static long double 776*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmin(long double __x,long double __y)777*bed243d3SAndroid Build Coastguard Worker __tg_fmin(long double __x, long double __y) {return fminl(__x, __y);} 778*bed243d3SAndroid Build Coastguard Worker 779*bed243d3SAndroid Build Coastguard Worker #undef fmin 780*bed243d3SAndroid Build Coastguard Worker #define fmin(__x, __y) __tg_fmin(__tg_promote2((__x), (__y))(__x), \ 781*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 782*bed243d3SAndroid Build Coastguard Worker 783*bed243d3SAndroid Build Coastguard Worker // fmod 784*bed243d3SAndroid Build Coastguard Worker 785*bed243d3SAndroid Build Coastguard Worker static float 786*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmod(float __x,float __y)787*bed243d3SAndroid Build Coastguard Worker __tg_fmod(float __x, float __y) {return fmodf(__x, __y);} 788*bed243d3SAndroid Build Coastguard Worker 789*bed243d3SAndroid Build Coastguard Worker static double 790*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmod(double __x,double __y)791*bed243d3SAndroid Build Coastguard Worker __tg_fmod(double __x, double __y) {return fmod(__x, __y);} 792*bed243d3SAndroid Build Coastguard Worker 793*bed243d3SAndroid Build Coastguard Worker static long double 794*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_fmod(long double __x,long double __y)795*bed243d3SAndroid Build Coastguard Worker __tg_fmod(long double __x, long double __y) {return fmodl(__x, __y);} 796*bed243d3SAndroid Build Coastguard Worker 797*bed243d3SAndroid Build Coastguard Worker #undef fmod 798*bed243d3SAndroid Build Coastguard Worker #define fmod(__x, __y) __tg_fmod(__tg_promote2((__x), (__y))(__x), \ 799*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 800*bed243d3SAndroid Build Coastguard Worker 801*bed243d3SAndroid Build Coastguard Worker // frexp 802*bed243d3SAndroid Build Coastguard Worker 803*bed243d3SAndroid Build Coastguard Worker static float 804*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_frexp(float __x,int * __y)805*bed243d3SAndroid Build Coastguard Worker __tg_frexp(float __x, int* __y) {return frexpf(__x, __y);} 806*bed243d3SAndroid Build Coastguard Worker 807*bed243d3SAndroid Build Coastguard Worker static double 808*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_frexp(double __x,int * __y)809*bed243d3SAndroid Build Coastguard Worker __tg_frexp(double __x, int* __y) {return frexp(__x, __y);} 810*bed243d3SAndroid Build Coastguard Worker 811*bed243d3SAndroid Build Coastguard Worker static long double 812*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_frexp(long double __x,int * __y)813*bed243d3SAndroid Build Coastguard Worker __tg_frexp(long double __x, int* __y) {return frexpl(__x, __y);} 814*bed243d3SAndroid Build Coastguard Worker 815*bed243d3SAndroid Build Coastguard Worker #undef frexp 816*bed243d3SAndroid Build Coastguard Worker #define frexp(__x, __y) __tg_frexp(__tg_promote1((__x))(__x), __y) 817*bed243d3SAndroid Build Coastguard Worker 818*bed243d3SAndroid Build Coastguard Worker // hypot 819*bed243d3SAndroid Build Coastguard Worker 820*bed243d3SAndroid Build Coastguard Worker static float 821*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_hypot(float __x,float __y)822*bed243d3SAndroid Build Coastguard Worker __tg_hypot(float __x, float __y) {return hypotf(__x, __y);} 823*bed243d3SAndroid Build Coastguard Worker 824*bed243d3SAndroid Build Coastguard Worker static double 825*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_hypot(double __x,double __y)826*bed243d3SAndroid Build Coastguard Worker __tg_hypot(double __x, double __y) {return hypot(__x, __y);} 827*bed243d3SAndroid Build Coastguard Worker 828*bed243d3SAndroid Build Coastguard Worker static long double 829*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_hypot(long double __x,long double __y)830*bed243d3SAndroid Build Coastguard Worker __tg_hypot(long double __x, long double __y) {return hypotl(__x, __y);} 831*bed243d3SAndroid Build Coastguard Worker 832*bed243d3SAndroid Build Coastguard Worker #undef hypot 833*bed243d3SAndroid Build Coastguard Worker #define hypot(__x, __y) __tg_hypot(__tg_promote2((__x), (__y))(__x), \ 834*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 835*bed243d3SAndroid Build Coastguard Worker 836*bed243d3SAndroid Build Coastguard Worker // ilogb 837*bed243d3SAndroid Build Coastguard Worker 838*bed243d3SAndroid Build Coastguard Worker static int 839*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ilogb(float __x)840*bed243d3SAndroid Build Coastguard Worker __tg_ilogb(float __x) {return ilogbf(__x);} 841*bed243d3SAndroid Build Coastguard Worker 842*bed243d3SAndroid Build Coastguard Worker static int 843*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ilogb(double __x)844*bed243d3SAndroid Build Coastguard Worker __tg_ilogb(double __x) {return ilogb(__x);} 845*bed243d3SAndroid Build Coastguard Worker 846*bed243d3SAndroid Build Coastguard Worker static int 847*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ilogb(long double __x)848*bed243d3SAndroid Build Coastguard Worker __tg_ilogb(long double __x) {return ilogbl(__x);} 849*bed243d3SAndroid Build Coastguard Worker 850*bed243d3SAndroid Build Coastguard Worker #undef ilogb 851*bed243d3SAndroid Build Coastguard Worker #define ilogb(__x) __tg_ilogb(__tg_promote1((__x))(__x)) 852*bed243d3SAndroid Build Coastguard Worker 853*bed243d3SAndroid Build Coastguard Worker // ldexp 854*bed243d3SAndroid Build Coastguard Worker 855*bed243d3SAndroid Build Coastguard Worker static float 856*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ldexp(float __x,int __y)857*bed243d3SAndroid Build Coastguard Worker __tg_ldexp(float __x, int __y) {return ldexpf(__x, __y);} 858*bed243d3SAndroid Build Coastguard Worker 859*bed243d3SAndroid Build Coastguard Worker static double 860*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ldexp(double __x,int __y)861*bed243d3SAndroid Build Coastguard Worker __tg_ldexp(double __x, int __y) {return ldexp(__x, __y);} 862*bed243d3SAndroid Build Coastguard Worker 863*bed243d3SAndroid Build Coastguard Worker static long double 864*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_ldexp(long double __x,int __y)865*bed243d3SAndroid Build Coastguard Worker __tg_ldexp(long double __x, int __y) {return ldexpl(__x, __y);} 866*bed243d3SAndroid Build Coastguard Worker 867*bed243d3SAndroid Build Coastguard Worker #undef ldexp 868*bed243d3SAndroid Build Coastguard Worker #define ldexp(__x, __y) __tg_ldexp(__tg_promote1((__x))(__x), __y) 869*bed243d3SAndroid Build Coastguard Worker 870*bed243d3SAndroid Build Coastguard Worker // lgamma 871*bed243d3SAndroid Build Coastguard Worker 872*bed243d3SAndroid Build Coastguard Worker static float 873*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lgamma(float __x)874*bed243d3SAndroid Build Coastguard Worker __tg_lgamma(float __x) {return lgammaf(__x);} 875*bed243d3SAndroid Build Coastguard Worker 876*bed243d3SAndroid Build Coastguard Worker static double 877*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lgamma(double __x)878*bed243d3SAndroid Build Coastguard Worker __tg_lgamma(double __x) {return lgamma(__x);} 879*bed243d3SAndroid Build Coastguard Worker 880*bed243d3SAndroid Build Coastguard Worker static long double 881*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lgamma(long double __x)882*bed243d3SAndroid Build Coastguard Worker __tg_lgamma(long double __x) {return lgammal(__x);} 883*bed243d3SAndroid Build Coastguard Worker 884*bed243d3SAndroid Build Coastguard Worker #undef lgamma 885*bed243d3SAndroid Build Coastguard Worker #define lgamma(__x) __tg_lgamma(__tg_promote1((__x))(__x)) 886*bed243d3SAndroid Build Coastguard Worker 887*bed243d3SAndroid Build Coastguard Worker // llrint 888*bed243d3SAndroid Build Coastguard Worker 889*bed243d3SAndroid Build Coastguard Worker static long long 890*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_llrint(float __x)891*bed243d3SAndroid Build Coastguard Worker __tg_llrint(float __x) {return llrintf(__x);} 892*bed243d3SAndroid Build Coastguard Worker 893*bed243d3SAndroid Build Coastguard Worker static long long 894*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_llrint(double __x)895*bed243d3SAndroid Build Coastguard Worker __tg_llrint(double __x) {return llrint(__x);} 896*bed243d3SAndroid Build Coastguard Worker 897*bed243d3SAndroid Build Coastguard Worker static long long 898*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_llrint(long double __x)899*bed243d3SAndroid Build Coastguard Worker __tg_llrint(long double __x) {return llrintl(__x);} 900*bed243d3SAndroid Build Coastguard Worker 901*bed243d3SAndroid Build Coastguard Worker #undef llrint 902*bed243d3SAndroid Build Coastguard Worker #define llrint(__x) __tg_llrint(__tg_promote1((__x))(__x)) 903*bed243d3SAndroid Build Coastguard Worker 904*bed243d3SAndroid Build Coastguard Worker // llround 905*bed243d3SAndroid Build Coastguard Worker 906*bed243d3SAndroid Build Coastguard Worker static long long 907*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_llround(float __x)908*bed243d3SAndroid Build Coastguard Worker __tg_llround(float __x) {return llroundf(__x);} 909*bed243d3SAndroid Build Coastguard Worker 910*bed243d3SAndroid Build Coastguard Worker static long long 911*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_llround(double __x)912*bed243d3SAndroid Build Coastguard Worker __tg_llround(double __x) {return llround(__x);} 913*bed243d3SAndroid Build Coastguard Worker 914*bed243d3SAndroid Build Coastguard Worker static long long 915*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_llround(long double __x)916*bed243d3SAndroid Build Coastguard Worker __tg_llround(long double __x) {return llroundl(__x);} 917*bed243d3SAndroid Build Coastguard Worker 918*bed243d3SAndroid Build Coastguard Worker #undef llround 919*bed243d3SAndroid Build Coastguard Worker #define llround(__x) __tg_llround(__tg_promote1((__x))(__x)) 920*bed243d3SAndroid Build Coastguard Worker 921*bed243d3SAndroid Build Coastguard Worker // log10 922*bed243d3SAndroid Build Coastguard Worker 923*bed243d3SAndroid Build Coastguard Worker static float 924*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log10(float __x)925*bed243d3SAndroid Build Coastguard Worker __tg_log10(float __x) {return log10f(__x);} 926*bed243d3SAndroid Build Coastguard Worker 927*bed243d3SAndroid Build Coastguard Worker static double 928*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log10(double __x)929*bed243d3SAndroid Build Coastguard Worker __tg_log10(double __x) {return log10(__x);} 930*bed243d3SAndroid Build Coastguard Worker 931*bed243d3SAndroid Build Coastguard Worker static long double 932*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log10(long double __x)933*bed243d3SAndroid Build Coastguard Worker __tg_log10(long double __x) {return log10l(__x);} 934*bed243d3SAndroid Build Coastguard Worker 935*bed243d3SAndroid Build Coastguard Worker #undef log10 936*bed243d3SAndroid Build Coastguard Worker #define log10(__x) __tg_log10(__tg_promote1((__x))(__x)) 937*bed243d3SAndroid Build Coastguard Worker 938*bed243d3SAndroid Build Coastguard Worker // log1p 939*bed243d3SAndroid Build Coastguard Worker 940*bed243d3SAndroid Build Coastguard Worker static float 941*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log1p(float __x)942*bed243d3SAndroid Build Coastguard Worker __tg_log1p(float __x) {return log1pf(__x);} 943*bed243d3SAndroid Build Coastguard Worker 944*bed243d3SAndroid Build Coastguard Worker static double 945*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log1p(double __x)946*bed243d3SAndroid Build Coastguard Worker __tg_log1p(double __x) {return log1p(__x);} 947*bed243d3SAndroid Build Coastguard Worker 948*bed243d3SAndroid Build Coastguard Worker static long double 949*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log1p(long double __x)950*bed243d3SAndroid Build Coastguard Worker __tg_log1p(long double __x) {return log1pl(__x);} 951*bed243d3SAndroid Build Coastguard Worker 952*bed243d3SAndroid Build Coastguard Worker #undef log1p 953*bed243d3SAndroid Build Coastguard Worker #define log1p(__x) __tg_log1p(__tg_promote1((__x))(__x)) 954*bed243d3SAndroid Build Coastguard Worker 955*bed243d3SAndroid Build Coastguard Worker // log2 956*bed243d3SAndroid Build Coastguard Worker 957*bed243d3SAndroid Build Coastguard Worker static float 958*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log2(float __x)959*bed243d3SAndroid Build Coastguard Worker __tg_log2(float __x) {return log2f(__x);} 960*bed243d3SAndroid Build Coastguard Worker 961*bed243d3SAndroid Build Coastguard Worker static double 962*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log2(double __x)963*bed243d3SAndroid Build Coastguard Worker __tg_log2(double __x) {return log2(__x);} 964*bed243d3SAndroid Build Coastguard Worker 965*bed243d3SAndroid Build Coastguard Worker static long double 966*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_log2(long double __x)967*bed243d3SAndroid Build Coastguard Worker __tg_log2(long double __x) {return log2l(__x);} 968*bed243d3SAndroid Build Coastguard Worker 969*bed243d3SAndroid Build Coastguard Worker #undef log2 970*bed243d3SAndroid Build Coastguard Worker #define log2(__x) __tg_log2(__tg_promote1((__x))(__x)) 971*bed243d3SAndroid Build Coastguard Worker 972*bed243d3SAndroid Build Coastguard Worker // logb 973*bed243d3SAndroid Build Coastguard Worker 974*bed243d3SAndroid Build Coastguard Worker static float 975*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_logb(float __x)976*bed243d3SAndroid Build Coastguard Worker __tg_logb(float __x) {return logbf(__x);} 977*bed243d3SAndroid Build Coastguard Worker 978*bed243d3SAndroid Build Coastguard Worker static double 979*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_logb(double __x)980*bed243d3SAndroid Build Coastguard Worker __tg_logb(double __x) {return logb(__x);} 981*bed243d3SAndroid Build Coastguard Worker 982*bed243d3SAndroid Build Coastguard Worker static long double 983*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_logb(long double __x)984*bed243d3SAndroid Build Coastguard Worker __tg_logb(long double __x) {return logbl(__x);} 985*bed243d3SAndroid Build Coastguard Worker 986*bed243d3SAndroid Build Coastguard Worker #undef logb 987*bed243d3SAndroid Build Coastguard Worker #define logb(__x) __tg_logb(__tg_promote1((__x))(__x)) 988*bed243d3SAndroid Build Coastguard Worker 989*bed243d3SAndroid Build Coastguard Worker // lrint 990*bed243d3SAndroid Build Coastguard Worker 991*bed243d3SAndroid Build Coastguard Worker static long 992*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lrint(float __x)993*bed243d3SAndroid Build Coastguard Worker __tg_lrint(float __x) {return lrintf(__x);} 994*bed243d3SAndroid Build Coastguard Worker 995*bed243d3SAndroid Build Coastguard Worker static long 996*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lrint(double __x)997*bed243d3SAndroid Build Coastguard Worker __tg_lrint(double __x) {return lrint(__x);} 998*bed243d3SAndroid Build Coastguard Worker 999*bed243d3SAndroid Build Coastguard Worker static long 1000*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lrint(long double __x)1001*bed243d3SAndroid Build Coastguard Worker __tg_lrint(long double __x) {return lrintl(__x);} 1002*bed243d3SAndroid Build Coastguard Worker 1003*bed243d3SAndroid Build Coastguard Worker #undef lrint 1004*bed243d3SAndroid Build Coastguard Worker #define lrint(__x) __tg_lrint(__tg_promote1((__x))(__x)) 1005*bed243d3SAndroid Build Coastguard Worker 1006*bed243d3SAndroid Build Coastguard Worker // lround 1007*bed243d3SAndroid Build Coastguard Worker 1008*bed243d3SAndroid Build Coastguard Worker static long 1009*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lround(float __x)1010*bed243d3SAndroid Build Coastguard Worker __tg_lround(float __x) {return lroundf(__x);} 1011*bed243d3SAndroid Build Coastguard Worker 1012*bed243d3SAndroid Build Coastguard Worker static long 1013*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lround(double __x)1014*bed243d3SAndroid Build Coastguard Worker __tg_lround(double __x) {return lround(__x);} 1015*bed243d3SAndroid Build Coastguard Worker 1016*bed243d3SAndroid Build Coastguard Worker static long 1017*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_lround(long double __x)1018*bed243d3SAndroid Build Coastguard Worker __tg_lround(long double __x) {return lroundl(__x);} 1019*bed243d3SAndroid Build Coastguard Worker 1020*bed243d3SAndroid Build Coastguard Worker #undef lround 1021*bed243d3SAndroid Build Coastguard Worker #define lround(__x) __tg_lround(__tg_promote1((__x))(__x)) 1022*bed243d3SAndroid Build Coastguard Worker 1023*bed243d3SAndroid Build Coastguard Worker // nearbyint 1024*bed243d3SAndroid Build Coastguard Worker 1025*bed243d3SAndroid Build Coastguard Worker static float 1026*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nearbyint(float __x)1027*bed243d3SAndroid Build Coastguard Worker __tg_nearbyint(float __x) {return nearbyintf(__x);} 1028*bed243d3SAndroid Build Coastguard Worker 1029*bed243d3SAndroid Build Coastguard Worker static double 1030*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nearbyint(double __x)1031*bed243d3SAndroid Build Coastguard Worker __tg_nearbyint(double __x) {return nearbyint(__x);} 1032*bed243d3SAndroid Build Coastguard Worker 1033*bed243d3SAndroid Build Coastguard Worker static long double 1034*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nearbyint(long double __x)1035*bed243d3SAndroid Build Coastguard Worker __tg_nearbyint(long double __x) {return nearbyintl(__x);} 1036*bed243d3SAndroid Build Coastguard Worker 1037*bed243d3SAndroid Build Coastguard Worker #undef nearbyint 1038*bed243d3SAndroid Build Coastguard Worker #define nearbyint(__x) __tg_nearbyint(__tg_promote1((__x))(__x)) 1039*bed243d3SAndroid Build Coastguard Worker 1040*bed243d3SAndroid Build Coastguard Worker // nextafter 1041*bed243d3SAndroid Build Coastguard Worker 1042*bed243d3SAndroid Build Coastguard Worker static float 1043*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nextafter(float __x,float __y)1044*bed243d3SAndroid Build Coastguard Worker __tg_nextafter(float __x, float __y) {return nextafterf(__x, __y);} 1045*bed243d3SAndroid Build Coastguard Worker 1046*bed243d3SAndroid Build Coastguard Worker static double 1047*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nextafter(double __x,double __y)1048*bed243d3SAndroid Build Coastguard Worker __tg_nextafter(double __x, double __y) {return nextafter(__x, __y);} 1049*bed243d3SAndroid Build Coastguard Worker 1050*bed243d3SAndroid Build Coastguard Worker static long double 1051*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nextafter(long double __x,long double __y)1052*bed243d3SAndroid Build Coastguard Worker __tg_nextafter(long double __x, long double __y) {return nextafterl(__x, __y);} 1053*bed243d3SAndroid Build Coastguard Worker 1054*bed243d3SAndroid Build Coastguard Worker #undef nextafter 1055*bed243d3SAndroid Build Coastguard Worker #define nextafter(__x, __y) __tg_nextafter(__tg_promote2((__x), (__y))(__x), \ 1056*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 1057*bed243d3SAndroid Build Coastguard Worker 1058*bed243d3SAndroid Build Coastguard Worker // nexttoward 1059*bed243d3SAndroid Build Coastguard Worker 1060*bed243d3SAndroid Build Coastguard Worker static float 1061*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nexttoward(float __x,long double __y)1062*bed243d3SAndroid Build Coastguard Worker __tg_nexttoward(float __x, long double __y) {return nexttowardf(__x, __y);} 1063*bed243d3SAndroid Build Coastguard Worker 1064*bed243d3SAndroid Build Coastguard Worker static double 1065*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nexttoward(double __x,long double __y)1066*bed243d3SAndroid Build Coastguard Worker __tg_nexttoward(double __x, long double __y) {return nexttoward(__x, __y);} 1067*bed243d3SAndroid Build Coastguard Worker 1068*bed243d3SAndroid Build Coastguard Worker static long double 1069*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_nexttoward(long double __x,long double __y)1070*bed243d3SAndroid Build Coastguard Worker __tg_nexttoward(long double __x, long double __y) {return nexttowardl(__x, __y);} 1071*bed243d3SAndroid Build Coastguard Worker 1072*bed243d3SAndroid Build Coastguard Worker #undef nexttoward 1073*bed243d3SAndroid Build Coastguard Worker #define nexttoward(__x, __y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y)) 1074*bed243d3SAndroid Build Coastguard Worker 1075*bed243d3SAndroid Build Coastguard Worker // remainder 1076*bed243d3SAndroid Build Coastguard Worker 1077*bed243d3SAndroid Build Coastguard Worker static float 1078*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_remainder(float __x,float __y)1079*bed243d3SAndroid Build Coastguard Worker __tg_remainder(float __x, float __y) {return remainderf(__x, __y);} 1080*bed243d3SAndroid Build Coastguard Worker 1081*bed243d3SAndroid Build Coastguard Worker static double 1082*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_remainder(double __x,double __y)1083*bed243d3SAndroid Build Coastguard Worker __tg_remainder(double __x, double __y) {return remainder(__x, __y);} 1084*bed243d3SAndroid Build Coastguard Worker 1085*bed243d3SAndroid Build Coastguard Worker static long double 1086*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_remainder(long double __x,long double __y)1087*bed243d3SAndroid Build Coastguard Worker __tg_remainder(long double __x, long double __y) {return remainderl(__x, __y);} 1088*bed243d3SAndroid Build Coastguard Worker 1089*bed243d3SAndroid Build Coastguard Worker #undef remainder 1090*bed243d3SAndroid Build Coastguard Worker #define remainder(__x, __y) __tg_remainder(__tg_promote2((__x), (__y))(__x), \ 1091*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y)) 1092*bed243d3SAndroid Build Coastguard Worker 1093*bed243d3SAndroid Build Coastguard Worker // remquo 1094*bed243d3SAndroid Build Coastguard Worker 1095*bed243d3SAndroid Build Coastguard Worker static float 1096*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_remquo(float __x,float __y,int * __z)1097*bed243d3SAndroid Build Coastguard Worker __tg_remquo(float __x, float __y, int* __z) 1098*bed243d3SAndroid Build Coastguard Worker {return remquof(__x, __y, __z);} 1099*bed243d3SAndroid Build Coastguard Worker 1100*bed243d3SAndroid Build Coastguard Worker static double 1101*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_remquo(double __x,double __y,int * __z)1102*bed243d3SAndroid Build Coastguard Worker __tg_remquo(double __x, double __y, int* __z) 1103*bed243d3SAndroid Build Coastguard Worker {return remquo(__x, __y, __z);} 1104*bed243d3SAndroid Build Coastguard Worker 1105*bed243d3SAndroid Build Coastguard Worker static long double 1106*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_remquo(long double __x,long double __y,int * __z)1107*bed243d3SAndroid Build Coastguard Worker __tg_remquo(long double __x,long double __y, int* __z) 1108*bed243d3SAndroid Build Coastguard Worker {return remquol(__x, __y, __z);} 1109*bed243d3SAndroid Build Coastguard Worker 1110*bed243d3SAndroid Build Coastguard Worker #undef remquo 1111*bed243d3SAndroid Build Coastguard Worker #define remquo(__x, __y, __z) \ 1112*bed243d3SAndroid Build Coastguard Worker __tg_remquo(__tg_promote2((__x), (__y))(__x), \ 1113*bed243d3SAndroid Build Coastguard Worker __tg_promote2((__x), (__y))(__y), \ 1114*bed243d3SAndroid Build Coastguard Worker (__z)) 1115*bed243d3SAndroid Build Coastguard Worker 1116*bed243d3SAndroid Build Coastguard Worker // rint 1117*bed243d3SAndroid Build Coastguard Worker 1118*bed243d3SAndroid Build Coastguard Worker static float 1119*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_rint(float __x)1120*bed243d3SAndroid Build Coastguard Worker __tg_rint(float __x) {return rintf(__x);} 1121*bed243d3SAndroid Build Coastguard Worker 1122*bed243d3SAndroid Build Coastguard Worker static double 1123*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_rint(double __x)1124*bed243d3SAndroid Build Coastguard Worker __tg_rint(double __x) {return rint(__x);} 1125*bed243d3SAndroid Build Coastguard Worker 1126*bed243d3SAndroid Build Coastguard Worker static long double 1127*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_rint(long double __x)1128*bed243d3SAndroid Build Coastguard Worker __tg_rint(long double __x) {return rintl(__x);} 1129*bed243d3SAndroid Build Coastguard Worker 1130*bed243d3SAndroid Build Coastguard Worker #undef rint 1131*bed243d3SAndroid Build Coastguard Worker #define rint(__x) __tg_rint(__tg_promote1((__x))(__x)) 1132*bed243d3SAndroid Build Coastguard Worker 1133*bed243d3SAndroid Build Coastguard Worker // round 1134*bed243d3SAndroid Build Coastguard Worker 1135*bed243d3SAndroid Build Coastguard Worker static float 1136*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_round(float __x)1137*bed243d3SAndroid Build Coastguard Worker __tg_round(float __x) {return roundf(__x);} 1138*bed243d3SAndroid Build Coastguard Worker 1139*bed243d3SAndroid Build Coastguard Worker static double 1140*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_round(double __x)1141*bed243d3SAndroid Build Coastguard Worker __tg_round(double __x) {return round(__x);} 1142*bed243d3SAndroid Build Coastguard Worker 1143*bed243d3SAndroid Build Coastguard Worker static long double 1144*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_round(long double __x)1145*bed243d3SAndroid Build Coastguard Worker __tg_round(long double __x) {return roundl(__x);} 1146*bed243d3SAndroid Build Coastguard Worker 1147*bed243d3SAndroid Build Coastguard Worker #undef round 1148*bed243d3SAndroid Build Coastguard Worker #define round(__x) __tg_round(__tg_promote1((__x))(__x)) 1149*bed243d3SAndroid Build Coastguard Worker 1150*bed243d3SAndroid Build Coastguard Worker // scalbn 1151*bed243d3SAndroid Build Coastguard Worker 1152*bed243d3SAndroid Build Coastguard Worker static float 1153*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_scalbn(float __x,int __y)1154*bed243d3SAndroid Build Coastguard Worker __tg_scalbn(float __x, int __y) {return scalbnf(__x, __y);} 1155*bed243d3SAndroid Build Coastguard Worker 1156*bed243d3SAndroid Build Coastguard Worker static double 1157*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_scalbn(double __x,int __y)1158*bed243d3SAndroid Build Coastguard Worker __tg_scalbn(double __x, int __y) {return scalbn(__x, __y);} 1159*bed243d3SAndroid Build Coastguard Worker 1160*bed243d3SAndroid Build Coastguard Worker static long double 1161*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_scalbn(long double __x,int __y)1162*bed243d3SAndroid Build Coastguard Worker __tg_scalbn(long double __x, int __y) {return scalbnl(__x, __y);} 1163*bed243d3SAndroid Build Coastguard Worker 1164*bed243d3SAndroid Build Coastguard Worker #undef scalbn 1165*bed243d3SAndroid Build Coastguard Worker #define scalbn(__x, __y) __tg_scalbn(__tg_promote1((__x))(__x), __y) 1166*bed243d3SAndroid Build Coastguard Worker 1167*bed243d3SAndroid Build Coastguard Worker // scalbln 1168*bed243d3SAndroid Build Coastguard Worker 1169*bed243d3SAndroid Build Coastguard Worker static float 1170*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_scalbln(float __x,long __y)1171*bed243d3SAndroid Build Coastguard Worker __tg_scalbln(float __x, long __y) {return scalblnf(__x, __y);} 1172*bed243d3SAndroid Build Coastguard Worker 1173*bed243d3SAndroid Build Coastguard Worker static double 1174*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_scalbln(double __x,long __y)1175*bed243d3SAndroid Build Coastguard Worker __tg_scalbln(double __x, long __y) {return scalbln(__x, __y);} 1176*bed243d3SAndroid Build Coastguard Worker 1177*bed243d3SAndroid Build Coastguard Worker static long double 1178*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_scalbln(long double __x,long __y)1179*bed243d3SAndroid Build Coastguard Worker __tg_scalbln(long double __x, long __y) {return scalblnl(__x, __y);} 1180*bed243d3SAndroid Build Coastguard Worker 1181*bed243d3SAndroid Build Coastguard Worker #undef scalbln 1182*bed243d3SAndroid Build Coastguard Worker #define scalbln(__x, __y) __tg_scalbln(__tg_promote1((__x))(__x), __y) 1183*bed243d3SAndroid Build Coastguard Worker 1184*bed243d3SAndroid Build Coastguard Worker // tgamma 1185*bed243d3SAndroid Build Coastguard Worker 1186*bed243d3SAndroid Build Coastguard Worker static float 1187*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tgamma(float __x)1188*bed243d3SAndroid Build Coastguard Worker __tg_tgamma(float __x) {return tgammaf(__x);} 1189*bed243d3SAndroid Build Coastguard Worker 1190*bed243d3SAndroid Build Coastguard Worker static double 1191*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tgamma(double __x)1192*bed243d3SAndroid Build Coastguard Worker __tg_tgamma(double __x) {return tgamma(__x);} 1193*bed243d3SAndroid Build Coastguard Worker 1194*bed243d3SAndroid Build Coastguard Worker static long double 1195*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_tgamma(long double __x)1196*bed243d3SAndroid Build Coastguard Worker __tg_tgamma(long double __x) {return tgammal(__x);} 1197*bed243d3SAndroid Build Coastguard Worker 1198*bed243d3SAndroid Build Coastguard Worker #undef tgamma 1199*bed243d3SAndroid Build Coastguard Worker #define tgamma(__x) __tg_tgamma(__tg_promote1((__x))(__x)) 1200*bed243d3SAndroid Build Coastguard Worker 1201*bed243d3SAndroid Build Coastguard Worker // trunc 1202*bed243d3SAndroid Build Coastguard Worker 1203*bed243d3SAndroid Build Coastguard Worker static float 1204*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_trunc(float __x)1205*bed243d3SAndroid Build Coastguard Worker __tg_trunc(float __x) {return truncf(__x);} 1206*bed243d3SAndroid Build Coastguard Worker 1207*bed243d3SAndroid Build Coastguard Worker static double 1208*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_trunc(double __x)1209*bed243d3SAndroid Build Coastguard Worker __tg_trunc(double __x) {return trunc(__x);} 1210*bed243d3SAndroid Build Coastguard Worker 1211*bed243d3SAndroid Build Coastguard Worker static long double 1212*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_trunc(long double __x)1213*bed243d3SAndroid Build Coastguard Worker __tg_trunc(long double __x) {return truncl(__x);} 1214*bed243d3SAndroid Build Coastguard Worker 1215*bed243d3SAndroid Build Coastguard Worker #undef trunc 1216*bed243d3SAndroid Build Coastguard Worker #define trunc(__x) __tg_trunc(__tg_promote1((__x))(__x)) 1217*bed243d3SAndroid Build Coastguard Worker 1218*bed243d3SAndroid Build Coastguard Worker // carg 1219*bed243d3SAndroid Build Coastguard Worker 1220*bed243d3SAndroid Build Coastguard Worker static float 1221*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_carg(float __x)1222*bed243d3SAndroid Build Coastguard Worker __tg_carg(float __x) {return atan2f(0.F, __x);} 1223*bed243d3SAndroid Build Coastguard Worker 1224*bed243d3SAndroid Build Coastguard Worker static double 1225*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_carg(double __x)1226*bed243d3SAndroid Build Coastguard Worker __tg_carg(double __x) {return atan2(0., __x);} 1227*bed243d3SAndroid Build Coastguard Worker 1228*bed243d3SAndroid Build Coastguard Worker static long double 1229*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_carg(long double __x)1230*bed243d3SAndroid Build Coastguard Worker __tg_carg(long double __x) {return atan2l(0.L, __x);} 1231*bed243d3SAndroid Build Coastguard Worker 1232*bed243d3SAndroid Build Coastguard Worker static float 1233*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_carg(float _Complex __x)1234*bed243d3SAndroid Build Coastguard Worker __tg_carg(float _Complex __x) {return cargf(__x);} 1235*bed243d3SAndroid Build Coastguard Worker 1236*bed243d3SAndroid Build Coastguard Worker static double 1237*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_carg(double _Complex __x)1238*bed243d3SAndroid Build Coastguard Worker __tg_carg(double _Complex __x) {return carg(__x);} 1239*bed243d3SAndroid Build Coastguard Worker 1240*bed243d3SAndroid Build Coastguard Worker static long double 1241*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_carg(long double _Complex __x)1242*bed243d3SAndroid Build Coastguard Worker __tg_carg(long double _Complex __x) {return cargl(__x);} 1243*bed243d3SAndroid Build Coastguard Worker 1244*bed243d3SAndroid Build Coastguard Worker #undef carg 1245*bed243d3SAndroid Build Coastguard Worker #define carg(__x) __tg_carg(__tg_promote1((__x))(__x)) 1246*bed243d3SAndroid Build Coastguard Worker 1247*bed243d3SAndroid Build Coastguard Worker // cimag 1248*bed243d3SAndroid Build Coastguard Worker 1249*bed243d3SAndroid Build Coastguard Worker static float 1250*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cimag(float __x)1251*bed243d3SAndroid Build Coastguard Worker __tg_cimag(float __x) {return 0;} 1252*bed243d3SAndroid Build Coastguard Worker 1253*bed243d3SAndroid Build Coastguard Worker static double 1254*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cimag(double __x)1255*bed243d3SAndroid Build Coastguard Worker __tg_cimag(double __x) {return 0;} 1256*bed243d3SAndroid Build Coastguard Worker 1257*bed243d3SAndroid Build Coastguard Worker static long double 1258*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cimag(long double __x)1259*bed243d3SAndroid Build Coastguard Worker __tg_cimag(long double __x) {return 0;} 1260*bed243d3SAndroid Build Coastguard Worker 1261*bed243d3SAndroid Build Coastguard Worker static float 1262*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cimag(float _Complex __x)1263*bed243d3SAndroid Build Coastguard Worker __tg_cimag(float _Complex __x) {return cimagf(__x);} 1264*bed243d3SAndroid Build Coastguard Worker 1265*bed243d3SAndroid Build Coastguard Worker static double 1266*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cimag(double _Complex __x)1267*bed243d3SAndroid Build Coastguard Worker __tg_cimag(double _Complex __x) {return cimag(__x);} 1268*bed243d3SAndroid Build Coastguard Worker 1269*bed243d3SAndroid Build Coastguard Worker static long double 1270*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cimag(long double _Complex __x)1271*bed243d3SAndroid Build Coastguard Worker __tg_cimag(long double _Complex __x) {return cimagl(__x);} 1272*bed243d3SAndroid Build Coastguard Worker 1273*bed243d3SAndroid Build Coastguard Worker #undef cimag 1274*bed243d3SAndroid Build Coastguard Worker #define cimag(__x) __tg_cimag(__tg_promote1((__x))(__x)) 1275*bed243d3SAndroid Build Coastguard Worker 1276*bed243d3SAndroid Build Coastguard Worker // conj 1277*bed243d3SAndroid Build Coastguard Worker 1278*bed243d3SAndroid Build Coastguard Worker static float _Complex 1279*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_conj(float __x)1280*bed243d3SAndroid Build Coastguard Worker __tg_conj(float __x) {return __x;} 1281*bed243d3SAndroid Build Coastguard Worker 1282*bed243d3SAndroid Build Coastguard Worker static double _Complex 1283*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_conj(double __x)1284*bed243d3SAndroid Build Coastguard Worker __tg_conj(double __x) {return __x;} 1285*bed243d3SAndroid Build Coastguard Worker 1286*bed243d3SAndroid Build Coastguard Worker static long double _Complex 1287*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_conj(long double __x)1288*bed243d3SAndroid Build Coastguard Worker __tg_conj(long double __x) {return __x;} 1289*bed243d3SAndroid Build Coastguard Worker 1290*bed243d3SAndroid Build Coastguard Worker static float _Complex 1291*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_conj(float _Complex __x)1292*bed243d3SAndroid Build Coastguard Worker __tg_conj(float _Complex __x) {return conjf(__x);} 1293*bed243d3SAndroid Build Coastguard Worker 1294*bed243d3SAndroid Build Coastguard Worker static double _Complex 1295*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_conj(double _Complex __x)1296*bed243d3SAndroid Build Coastguard Worker __tg_conj(double _Complex __x) {return conj(__x);} 1297*bed243d3SAndroid Build Coastguard Worker 1298*bed243d3SAndroid Build Coastguard Worker static long double _Complex 1299*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_conj(long double _Complex __x)1300*bed243d3SAndroid Build Coastguard Worker __tg_conj(long double _Complex __x) {return conjl(__x);} 1301*bed243d3SAndroid Build Coastguard Worker 1302*bed243d3SAndroid Build Coastguard Worker #undef conj 1303*bed243d3SAndroid Build Coastguard Worker #define conj(__x) __tg_conj(__tg_promote1((__x))(__x)) 1304*bed243d3SAndroid Build Coastguard Worker 1305*bed243d3SAndroid Build Coastguard Worker // cproj 1306*bed243d3SAndroid Build Coastguard Worker 1307*bed243d3SAndroid Build Coastguard Worker static float _Complex 1308*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cproj(float __x)1309*bed243d3SAndroid Build Coastguard Worker __tg_cproj(float __x) {return cprojf(__x);} 1310*bed243d3SAndroid Build Coastguard Worker 1311*bed243d3SAndroid Build Coastguard Worker static double _Complex 1312*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cproj(double __x)1313*bed243d3SAndroid Build Coastguard Worker __tg_cproj(double __x) {return cproj(__x);} 1314*bed243d3SAndroid Build Coastguard Worker 1315*bed243d3SAndroid Build Coastguard Worker static long double _Complex 1316*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cproj(long double __x)1317*bed243d3SAndroid Build Coastguard Worker __tg_cproj(long double __x) {return cprojl(__x);} 1318*bed243d3SAndroid Build Coastguard Worker 1319*bed243d3SAndroid Build Coastguard Worker static float _Complex 1320*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cproj(float _Complex __x)1321*bed243d3SAndroid Build Coastguard Worker __tg_cproj(float _Complex __x) {return cprojf(__x);} 1322*bed243d3SAndroid Build Coastguard Worker 1323*bed243d3SAndroid Build Coastguard Worker static double _Complex 1324*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cproj(double _Complex __x)1325*bed243d3SAndroid Build Coastguard Worker __tg_cproj(double _Complex __x) {return cproj(__x);} 1326*bed243d3SAndroid Build Coastguard Worker 1327*bed243d3SAndroid Build Coastguard Worker static long double _Complex 1328*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_cproj(long double _Complex __x)1329*bed243d3SAndroid Build Coastguard Worker __tg_cproj(long double _Complex __x) {return cprojl(__x);} 1330*bed243d3SAndroid Build Coastguard Worker 1331*bed243d3SAndroid Build Coastguard Worker #undef cproj 1332*bed243d3SAndroid Build Coastguard Worker #define cproj(__x) __tg_cproj(__tg_promote1((__x))(__x)) 1333*bed243d3SAndroid Build Coastguard Worker 1334*bed243d3SAndroid Build Coastguard Worker // creal 1335*bed243d3SAndroid Build Coastguard Worker 1336*bed243d3SAndroid Build Coastguard Worker static float 1337*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_creal(float __x)1338*bed243d3SAndroid Build Coastguard Worker __tg_creal(float __x) {return __x;} 1339*bed243d3SAndroid Build Coastguard Worker 1340*bed243d3SAndroid Build Coastguard Worker static double 1341*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_creal(double __x)1342*bed243d3SAndroid Build Coastguard Worker __tg_creal(double __x) {return __x;} 1343*bed243d3SAndroid Build Coastguard Worker 1344*bed243d3SAndroid Build Coastguard Worker static long double 1345*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_creal(long double __x)1346*bed243d3SAndroid Build Coastguard Worker __tg_creal(long double __x) {return __x;} 1347*bed243d3SAndroid Build Coastguard Worker 1348*bed243d3SAndroid Build Coastguard Worker static float 1349*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_creal(float _Complex __x)1350*bed243d3SAndroid Build Coastguard Worker __tg_creal(float _Complex __x) {return crealf(__x);} 1351*bed243d3SAndroid Build Coastguard Worker 1352*bed243d3SAndroid Build Coastguard Worker static double 1353*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_creal(double _Complex __x)1354*bed243d3SAndroid Build Coastguard Worker __tg_creal(double _Complex __x) {return creal(__x);} 1355*bed243d3SAndroid Build Coastguard Worker 1356*bed243d3SAndroid Build Coastguard Worker static long double 1357*bed243d3SAndroid Build Coastguard Worker _TG_ATTRS __tg_creal(long double _Complex __x)1358*bed243d3SAndroid Build Coastguard Worker __tg_creal(long double _Complex __x) {return creall(__x);} 1359*bed243d3SAndroid Build Coastguard Worker 1360*bed243d3SAndroid Build Coastguard Worker #undef creal 1361*bed243d3SAndroid Build Coastguard Worker #define creal(__x) __tg_creal(__tg_promote1((__x))(__x)) 1362*bed243d3SAndroid Build Coastguard Worker 1363*bed243d3SAndroid Build Coastguard Worker #undef _TG_ATTRSp 1364*bed243d3SAndroid Build Coastguard Worker #undef _TG_ATTRS 1365*bed243d3SAndroid Build Coastguard Worker 1366*bed243d3SAndroid Build Coastguard Worker #endif /* __cplusplus */ 1367*bed243d3SAndroid Build Coastguard Worker #endif /* __has_include_next */ 1368*bed243d3SAndroid Build Coastguard Worker #endif /* __CLANG_TGMATH_H */ 1369