1 //===-- NVPTX specific definitions for math support -----------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8
9 #ifndef LLVM_LIBC_SRC_MATH_NVPTX_NVPTX_H
10 #define LLVM_LIBC_SRC_MATH_NVPTX_NVPTX_H
11
12 #include "declarations.h"
13
14 #include "src/__support/macros/attributes.h"
15 #include "src/__support/macros/config.h"
16
17 namespace LIBC_NAMESPACE_DECL {
18 namespace internal {
acos(double x)19 LIBC_INLINE double acos(double x) { return __nv_acos(x); }
acosf(float x)20 LIBC_INLINE float acosf(float x) { return __nv_acosf(x); }
acosh(double x)21 LIBC_INLINE double acosh(double x) { return __nv_acosh(x); }
acoshf(float x)22 LIBC_INLINE float acoshf(float x) { return __nv_acoshf(x); }
asin(double x)23 LIBC_INLINE double asin(double x) { return __nv_asin(x); }
asinf(float x)24 LIBC_INLINE float asinf(float x) { return __nv_asinf(x); }
asinh(double x)25 LIBC_INLINE double asinh(double x) { return __nv_asinh(x); }
asinhf(float x)26 LIBC_INLINE float asinhf(float x) { return __nv_asinhf(x); }
atan2(double x,double y)27 LIBC_INLINE double atan2(double x, double y) { return __nv_atan2(x, y); }
atan2f(float x,float y)28 LIBC_INLINE float atan2f(float x, float y) { return __nv_atan2f(x, y); }
atan(double x)29 LIBC_INLINE double atan(double x) { return __nv_atan(x); }
atanf(float x)30 LIBC_INLINE float atanf(float x) { return __nv_atanf(x); }
atanh(double x)31 LIBC_INLINE double atanh(double x) { return __nv_atanh(x); }
atanhf(float x)32 LIBC_INLINE float atanhf(float x) { return __nv_atanhf(x); }
cos(double x)33 LIBC_INLINE double cos(double x) { return __nv_cos(x); }
cosf(float x)34 LIBC_INLINE float cosf(float x) { return __nv_cosf(x); }
cosh(double x)35 LIBC_INLINE double cosh(double x) { return __nv_cosh(x); }
coshf(float x)36 LIBC_INLINE float coshf(float x) { return __nv_coshf(x); }
erf(double x)37 LIBC_INLINE double erf(double x) { return __nv_erf(x); }
erff(float x)38 LIBC_INLINE float erff(float x) { return __nv_erff(x); }
exp(double x)39 LIBC_INLINE double exp(double x) { return __nv_exp(x); }
expf(float x)40 LIBC_INLINE float expf(float x) { return __nv_expf(x); }
exp2(double x)41 LIBC_INLINE double exp2(double x) { return __nv_exp2(x); }
exp2f(float x)42 LIBC_INLINE float exp2f(float x) { return __nv_exp2f(x); }
exp10(double x)43 LIBC_INLINE double exp10(double x) { return __nv_exp10(x); }
exp10f(float x)44 LIBC_INLINE float exp10f(float x) { return __nv_exp10f(x); }
expm1(double x)45 LIBC_INLINE double expm1(double x) { return __nv_expm1(x); }
expm1f(float x)46 LIBC_INLINE float expm1f(float x) { return __nv_expm1f(x); }
fdim(double x,double y)47 LIBC_INLINE double fdim(double x, double y) { return __nv_fdim(x, y); }
fdimf(float x,float y)48 LIBC_INLINE float fdimf(float x, float y) { return __nv_fdimf(x, y); }
hypot(double x,double y)49 LIBC_INLINE double hypot(double x, double y) { return __nv_hypot(x, y); }
hypotf(float x,float y)50 LIBC_INLINE float hypotf(float x, float y) { return __nv_hypotf(x, y); }
ilogb(double x)51 LIBC_INLINE int ilogb(double x) { return __nv_ilogb(x); }
ilogbf(float x)52 LIBC_INLINE int ilogbf(float x) { return __nv_ilogbf(x); }
ldexp(double x,int i)53 LIBC_INLINE double ldexp(double x, int i) { return __nv_ldexp(x, i); }
ldexpf(float x,int i)54 LIBC_INLINE float ldexpf(float x, int i) { return __nv_ldexpf(x, i); }
llrint(double x)55 LIBC_INLINE long long llrint(double x) { return __nv_llrint(x); }
llrintf(float x)56 LIBC_INLINE long long llrintf(float x) { return __nv_llrintf(x); }
log10(double x)57 LIBC_INLINE double log10(double x) { return __nv_log10(x); }
log10f(float x)58 LIBC_INLINE float log10f(float x) { return __nv_log10f(x); }
log1p(double x)59 LIBC_INLINE double log1p(double x) { return __nv_log1p(x); }
log1pf(float x)60 LIBC_INLINE float log1pf(float x) { return __nv_log1pf(x); }
log2(double x)61 LIBC_INLINE double log2(double x) { return __nv_log2(x); }
log2f(float x)62 LIBC_INLINE float log2f(float x) { return __nv_log2f(x); }
log(double x)63 LIBC_INLINE double log(double x) { return __nv_log(x); }
logf(float x)64 LIBC_INLINE float logf(float x) { return __nv_logf(x); }
lrint(double x)65 LIBC_INLINE long lrint(double x) { return __nv_lrint(x); }
lrintf(float x)66 LIBC_INLINE long lrintf(float x) { return __nv_lrintf(x); }
nextafter(double x,double y)67 LIBC_INLINE double nextafter(double x, double y) {
68 return __nv_nextafter(x, y);
69 }
nextafterf(float x,float y)70 LIBC_INLINE float nextafterf(float x, float y) { return __nv_nextafterf(x, y); }
pow(double x,double y)71 LIBC_INLINE double pow(double x, double y) { return __nv_pow(x, y); }
powf(float x,float y)72 LIBC_INLINE float powf(float x, float y) { return __nv_powf(x, y); }
sin(double x)73 LIBC_INLINE double sin(double x) { return __nv_sin(x); }
sinf(float x)74 LIBC_INLINE float sinf(float x) { return __nv_sinf(x); }
sincos(double x,double * sinptr,double * cosptr)75 LIBC_INLINE void sincos(double x, double *sinptr, double *cosptr) {
76 return __nv_sincos(x, sinptr, cosptr);
77 }
sincosf(float x,float * sinptr,float * cosptr)78 LIBC_INLINE void sincosf(float x, float *sinptr, float *cosptr) {
79 return __nv_sincosf(x, sinptr, cosptr);
80 }
sinh(double x)81 LIBC_INLINE double sinh(double x) { return __nv_sinh(x); }
sinhf(float x)82 LIBC_INLINE float sinhf(float x) { return __nv_sinhf(x); }
tan(double x)83 LIBC_INLINE double tan(double x) { return __nv_tan(x); }
tanf(float x)84 LIBC_INLINE float tanf(float x) { return __nv_tanf(x); }
tanh(double x)85 LIBC_INLINE double tanh(double x) { return __nv_tanh(x); }
tanhf(float x)86 LIBC_INLINE float tanhf(float x) { return __nv_tanhf(x); }
scalbn(double x,int i)87 LIBC_INLINE double scalbn(double x, int i) { return __nv_scalbn(x, i); }
scalbnf(float x,int i)88 LIBC_INLINE float scalbnf(float x, int i) { return __nv_scalbnf(x, i); }
frexp(double x,int * i)89 LIBC_INLINE double frexp(double x, int *i) { return __nv_frexp(x, i); }
frexpf(float x,int * i)90 LIBC_INLINE float frexpf(float x, int *i) { return __nv_frexpf(x, i); }
remquo(double x,double y,int * i)91 LIBC_INLINE double remquo(double x, double y, int *i) {
92 return __nv_remquo(x, y, i);
93 }
remquof(float x,float y,int * i)94 LIBC_INLINE float remquof(float x, float y, int *i) {
95 return __nv_remquof(x, y, i);
96 }
tgamma(double x)97 LIBC_INLINE double tgamma(double x) { return __nv_tgamma(x); }
tgammaf(float x)98 LIBC_INLINE float tgammaf(float x) { return __nv_tgammaf(x); }
99
100 } // namespace internal
101 } // namespace LIBC_NAMESPACE_DECL
102
103 #endif // LLVM_LIBC_SRC_MATH_NVPTX_NVPTX_H
104