#pragma once // __clang_cuda_(c)math(.h) also provide `abs` which actually belong in // cstdlib. We could split them out but for now we just include cstdlib from // cmath.h which is what the systems I've seen do as well. #include double fabs(double __a); double acos(double __a); float acosf(float __a); double acosh(double __a); float acoshf(float __a); double asin(double __a); float asinf(float __a); double asinh(double __a); float asinhf(float __a); double atan(double __a); double atan2(double __a, double __b); float atan2f(float __a, float __b); float atanf(float __a); double atanh(double __a); float atanhf(float __a); double cbrt(double __a); float cbrtf(float __a); double ceil(double __a); float ceilf(float __a); double copysign(double __a, double __b); float copysignf(float __a, float __b); double cos(double __a); float cosf(float __a); double cosh(double __a); float coshf(float __a); double cospi(double __a); float cospif(float __a); double cyl_bessel_i0(double __a); float cyl_bessel_i0f(float __a); double cyl_bessel_i1(double __a); float cyl_bessel_i1f(float __a); double erf(double __a); double erfc(double __a); float erfcf(float __a); double erfcinv(double __a); float erfcinvf(float __a); double erfcx(double __a); float erfcxf(float __a); float erff(float __a); double erfinv(double __a); float erfinvf(float __a); double exp(double __a); double exp10(double __a); float exp10f(float __a); double exp2(double __a); float exp2f(float __a); float expf(float __a); double expm1(double __a); float expm1f(float __a); float fabsf(float __a); double fdim(double __a, double __b); float fdimf(float __a, float __b); double fdivide(double __a, double __b); float fdividef(float __a, float __b); double floor(double __f); float floorf(float __f); double fma(double __a, double __b, double __c); float fmaf(float __a, float __b, float __c); double fmax(double __a, double __b); float fmaxf(float __a, float __b); double fmin(double __a, double __b); float fminf(float __a, float __b); double fmod(double __a, double __b); float fmodf(float __a, float __b); double frexp(double __a, int *__b); float frexpf(float __a, int *__b); double hypot(double __a, double __b); float hypotf(float __a, float __b); int ilogb(double __a); int ilogbf(float __a); double j0(double __a); float j0f(float __a); double j1(double __a); float j1f(float __a); double jn(int __n, double __a); float jnf(int __n, float __a); double ldexp(double __a, int __b); float ldexpf(float __a, int __b); double lgamma(double __a); float lgammaf(float __a); long long llmax(long long __a, long long __b); long long llmin(long long __a, long long __b); long long llrint(double __a); long long llrintf(float __a); long long llround(double __a); long long llroundf(float __a); double log(double __a); double log10(double __a); float log10f(float __a); double log1p(double __a); float log1pf(float __a); double log2(double __a); float log2f(float __a); double logb(double __a); float logbf(float __a); float logf(float __a); long lrint(double __a); long lrintf(float __a); long lround(double __a); long lroundf(float __a); int max(int __a, int __b); int min(int __a, int __b); double modf(double __a, double *__b); float modff(float __a, float *__b); double nearbyint(double __a); float nearbyintf(float __a); double nextafter(double __a, double __b); float nextafterf(float __a, float __b); double norm(int __dim, const double *__t); double norm3d(double __a, double __b, double __c); float norm3df(float __a, float __b, float __c); double norm4d(double __a, double __b, double __c, double __d); float norm4df(float __a, float __b, float __c, float __d); double normcdf(double __a); float normcdff(float __a); double normcdfinv(double __a); float normcdfinvf(float __a); float normf(int __dim, const float *__t); double pow(double __a, double __b); float powf(float __a, float __b); double powi(double __a, int __b); float powif(float __a, int __b); double rcbrt(double __a); float rcbrtf(float __a); double remainder(double __a, double __b); float remainderf(float __a, float __b); double remquo(double __a, double __b, int *__c); float remquof(float __a, float __b, int *__c); double rhypot(double __a, double __b); float rhypotf(float __a, float __b); double rint(double __a); float rintf(float __a); double rnorm(int __a, const double *__b); double rnorm3d(double __a, double __b, double __c); float rnorm3df(float __a, float __b, float __c); double rnorm4d(double __a, double __b, double __c, double __d); float rnorm4df(float __a, float __b, float __c, float __d); float rnormf(int __dim, const float *__t); double round(double __a); float roundf(float __a); double rsqrt(double __a); float rsqrtf(float __a); double scalbn(double __a, int __b); float scalbnf(float __a, int __b); double scalbln(double __a, long __b); float scalblnf(float __a, long __b); double sin(double __a); void sincos(double __a, double *__s, double *__c); void sincosf(float __a, float *__s, float *__c); void sincospi(double __a, double *__s, double *__c); void sincospif(float __a, float *__s, float *__c); float sinf(float __a); double sinh(double __a); float sinhf(float __a); double sinpi(double __a); float sinpif(float __a); double sqrt(double __a); float sqrtf(float __a); double tan(double __a); float tanf(float __a); double tanh(double __a); float tanhf(float __a); double tgamma(double __a); float tgammaf(float __a); double trunc(double __a); float truncf(float __a); unsigned long long ullmax(unsigned long long __a, unsigned long long __b); unsigned long long ullmin(unsigned long long __a, unsigned long long __b); unsigned int umax(unsigned int __a, unsigned int __b); unsigned int umin(unsigned int __a, unsigned int __b); double y0(double __a); float y0f(float __a); double y1(double __a); float y1f(float __a); double yn(int __a, double __b); float ynf(int __a, float __b); /** * A positive float constant expression. HUGE_VALF evaluates * to +infinity. Used as an error value returned by the built-in * math functions. */ #define HUGE_VALF (__builtin_huge_valf()) /** * A positive double constant expression. HUGE_VAL evaluates * to +infinity. Used as an error value returned by the built-in * math functions. */ #define HUGE_VAL (__builtin_huge_val()) #ifdef __cplusplus #include #endif