204 lines
6.2 KiB
C
204 lines
6.2 KiB
C
|
#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 <stdlib.h>
|
||
|
|
||
|
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 <cmath>
|
||
|
#endif
|