xref: /llvm-project/clang/test/Headers/Inputs/include/math.h (revision 053dd30bb5d3ce5f6b57f10858ea0a6e4df7c738)
144dd05c3SReid Kleckner #pragma once
244dd05c3SReid Kleckner 
3f85ae058SJohannes Doerfert // __clang_cuda_(c)math(.h) also provide `abs` which actually belong in
4f85ae058SJohannes Doerfert // cstdlib. We could split them out but for now we just include cstdlib from
5f85ae058SJohannes Doerfert // cmath.h which is what the systems I've seen do as well.
6f85ae058SJohannes Doerfert #include <stdlib.h>
7f85ae058SJohannes Doerfert 
8f85ae058SJohannes Doerfert double fabs(double __a);
9f85ae058SJohannes Doerfert double acos(double __a);
10f85ae058SJohannes Doerfert float acosf(float __a);
11f85ae058SJohannes Doerfert double acosh(double __a);
12f85ae058SJohannes Doerfert float acoshf(float __a);
13f85ae058SJohannes Doerfert double asin(double __a);
14f85ae058SJohannes Doerfert float asinf(float __a);
15f85ae058SJohannes Doerfert double asinh(double __a);
16f85ae058SJohannes Doerfert float asinhf(float __a);
17f85ae058SJohannes Doerfert double atan(double __a);
18f85ae058SJohannes Doerfert double atan2(double __a, double __b);
19f85ae058SJohannes Doerfert float atan2f(float __a, float __b);
20f85ae058SJohannes Doerfert float atanf(float __a);
21f85ae058SJohannes Doerfert double atanh(double __a);
22f85ae058SJohannes Doerfert float atanhf(float __a);
23f85ae058SJohannes Doerfert double cbrt(double __a);
24f85ae058SJohannes Doerfert float cbrtf(float __a);
25f85ae058SJohannes Doerfert double ceil(double __a);
26f85ae058SJohannes Doerfert float ceilf(float __a);
27f85ae058SJohannes Doerfert double copysign(double __a, double __b);
28f85ae058SJohannes Doerfert float copysignf(float __a, float __b);
29f85ae058SJohannes Doerfert double cos(double __a);
30f85ae058SJohannes Doerfert float cosf(float __a);
31f85ae058SJohannes Doerfert double cosh(double __a);
32f85ae058SJohannes Doerfert float coshf(float __a);
33f85ae058SJohannes Doerfert double cospi(double __a);
34f85ae058SJohannes Doerfert float cospif(float __a);
35f85ae058SJohannes Doerfert double cyl_bessel_i0(double __a);
36f85ae058SJohannes Doerfert float cyl_bessel_i0f(float __a);
37f85ae058SJohannes Doerfert double cyl_bessel_i1(double __a);
38f85ae058SJohannes Doerfert float cyl_bessel_i1f(float __a);
39f85ae058SJohannes Doerfert double erf(double __a);
40f85ae058SJohannes Doerfert double erfc(double __a);
41f85ae058SJohannes Doerfert float erfcf(float __a);
42f85ae058SJohannes Doerfert double erfcinv(double __a);
43f85ae058SJohannes Doerfert float erfcinvf(float __a);
44f85ae058SJohannes Doerfert double erfcx(double __a);
45f85ae058SJohannes Doerfert float erfcxf(float __a);
46f85ae058SJohannes Doerfert float erff(float __a);
47f85ae058SJohannes Doerfert double erfinv(double __a);
48f85ae058SJohannes Doerfert float erfinvf(float __a);
49f85ae058SJohannes Doerfert double exp(double __a);
50f85ae058SJohannes Doerfert double exp10(double __a);
51f85ae058SJohannes Doerfert float exp10f(float __a);
52f85ae058SJohannes Doerfert double exp2(double __a);
53f85ae058SJohannes Doerfert float exp2f(float __a);
54f85ae058SJohannes Doerfert float expf(float __a);
55f85ae058SJohannes Doerfert double expm1(double __a);
56f85ae058SJohannes Doerfert float expm1f(float __a);
57f85ae058SJohannes Doerfert float fabsf(float __a);
58f85ae058SJohannes Doerfert double fdim(double __a, double __b);
59f85ae058SJohannes Doerfert float fdimf(float __a, float __b);
60f85ae058SJohannes Doerfert double fdivide(double __a, double __b);
61f85ae058SJohannes Doerfert float fdividef(float __a, float __b);
62f85ae058SJohannes Doerfert double floor(double __f);
63f85ae058SJohannes Doerfert float floorf(float __f);
64f85ae058SJohannes Doerfert double fma(double __a, double __b, double __c);
65f85ae058SJohannes Doerfert float fmaf(float __a, float __b, float __c);
66f85ae058SJohannes Doerfert double fmax(double __a, double __b);
67f85ae058SJohannes Doerfert float fmaxf(float __a, float __b);
68f85ae058SJohannes Doerfert double fmin(double __a, double __b);
69f85ae058SJohannes Doerfert float fminf(float __a, float __b);
70f85ae058SJohannes Doerfert double fmod(double __a, double __b);
71f85ae058SJohannes Doerfert float fmodf(float __a, float __b);
72f85ae058SJohannes Doerfert double frexp(double __a, int *__b);
73f85ae058SJohannes Doerfert float frexpf(float __a, int *__b);
74f85ae058SJohannes Doerfert double hypot(double __a, double __b);
75f85ae058SJohannes Doerfert float hypotf(float __a, float __b);
76f85ae058SJohannes Doerfert int ilogb(double __a);
77f85ae058SJohannes Doerfert int ilogbf(float __a);
78f85ae058SJohannes Doerfert double j0(double __a);
79f85ae058SJohannes Doerfert float j0f(float __a);
80f85ae058SJohannes Doerfert double j1(double __a);
81f85ae058SJohannes Doerfert float j1f(float __a);
82f85ae058SJohannes Doerfert double jn(int __n, double __a);
83f85ae058SJohannes Doerfert float jnf(int __n, float __a);
84f85ae058SJohannes Doerfert double ldexp(double __a, int __b);
85f85ae058SJohannes Doerfert float ldexpf(float __a, int __b);
86f85ae058SJohannes Doerfert double lgamma(double __a);
87f85ae058SJohannes Doerfert float lgammaf(float __a);
88f85ae058SJohannes Doerfert long long llmax(long long __a, long long __b);
89f85ae058SJohannes Doerfert long long llmin(long long __a, long long __b);
90f85ae058SJohannes Doerfert long long llrint(double __a);
91f85ae058SJohannes Doerfert long long llrintf(float __a);
92f85ae058SJohannes Doerfert long long llround(double __a);
93f85ae058SJohannes Doerfert long long llroundf(float __a);
94f85ae058SJohannes Doerfert double log(double __a);
95f85ae058SJohannes Doerfert double log10(double __a);
96f85ae058SJohannes Doerfert float log10f(float __a);
97f85ae058SJohannes Doerfert double log1p(double __a);
98f85ae058SJohannes Doerfert float log1pf(float __a);
99f85ae058SJohannes Doerfert double log2(double __a);
100f85ae058SJohannes Doerfert float log2f(float __a);
101f85ae058SJohannes Doerfert double logb(double __a);
102f85ae058SJohannes Doerfert float logbf(float __a);
103f85ae058SJohannes Doerfert float logf(float __a);
104f85ae058SJohannes Doerfert long lrint(double __a);
105f85ae058SJohannes Doerfert long lrintf(float __a);
106f85ae058SJohannes Doerfert long lround(double __a);
107f85ae058SJohannes Doerfert long lroundf(float __a);
108f85ae058SJohannes Doerfert double modf(double __a, double *__b);
109f85ae058SJohannes Doerfert float modff(float __a, float *__b);
110f85ae058SJohannes Doerfert double nearbyint(double __a);
111f85ae058SJohannes Doerfert float nearbyintf(float __a);
112f85ae058SJohannes Doerfert double nextafter(double __a, double __b);
113f85ae058SJohannes Doerfert float nextafterf(float __a, float __b);
114f85ae058SJohannes Doerfert double norm(int __dim, const double *__t);
115f85ae058SJohannes Doerfert double norm3d(double __a, double __b, double __c);
116f85ae058SJohannes Doerfert float norm3df(float __a, float __b, float __c);
117f85ae058SJohannes Doerfert double norm4d(double __a, double __b, double __c, double __d);
118f85ae058SJohannes Doerfert float norm4df(float __a, float __b, float __c, float __d);
119f85ae058SJohannes Doerfert double normcdf(double __a);
120f85ae058SJohannes Doerfert float normcdff(float __a);
121f85ae058SJohannes Doerfert double normcdfinv(double __a);
122f85ae058SJohannes Doerfert float normcdfinvf(float __a);
123f85ae058SJohannes Doerfert float normf(int __dim, const float *__t);
124f85ae058SJohannes Doerfert double pow(double __a, double __b);
125f85ae058SJohannes Doerfert float powf(float __a, float __b);
126f85ae058SJohannes Doerfert double powi(double __a, int __b);
127f85ae058SJohannes Doerfert float powif(float __a, int __b);
128f85ae058SJohannes Doerfert double rcbrt(double __a);
129f85ae058SJohannes Doerfert float rcbrtf(float __a);
130f85ae058SJohannes Doerfert double remainder(double __a, double __b);
131f85ae058SJohannes Doerfert float remainderf(float __a, float __b);
132f85ae058SJohannes Doerfert double remquo(double __a, double __b, int *__c);
133f85ae058SJohannes Doerfert float remquof(float __a, float __b, int *__c);
134f85ae058SJohannes Doerfert double rhypot(double __a, double __b);
135f85ae058SJohannes Doerfert float rhypotf(float __a, float __b);
136f85ae058SJohannes Doerfert double rint(double __a);
137f85ae058SJohannes Doerfert float rintf(float __a);
138f85ae058SJohannes Doerfert double rnorm(int __a, const double *__b);
139f85ae058SJohannes Doerfert double rnorm3d(double __a, double __b, double __c);
140f85ae058SJohannes Doerfert float rnorm3df(float __a, float __b, float __c);
141f85ae058SJohannes Doerfert double rnorm4d(double __a, double __b, double __c, double __d);
142f85ae058SJohannes Doerfert float rnorm4df(float __a, float __b, float __c, float __d);
143f85ae058SJohannes Doerfert float rnormf(int __dim, const float *__t);
144f85ae058SJohannes Doerfert double round(double __a);
145f85ae058SJohannes Doerfert float roundf(float __a);
146f85ae058SJohannes Doerfert double rsqrt(double __a);
147f85ae058SJohannes Doerfert float rsqrtf(float __a);
148f85ae058SJohannes Doerfert double scalbn(double __a, int __b);
149f85ae058SJohannes Doerfert float scalbnf(float __a, int __b);
150f85ae058SJohannes Doerfert double scalbln(double __a, long __b);
151f85ae058SJohannes Doerfert float scalblnf(float __a, long __b);
152f85ae058SJohannes Doerfert double sin(double __a);
153f85ae058SJohannes Doerfert void sincos(double __a, double *__s, double *__c);
154f85ae058SJohannes Doerfert void sincosf(float __a, float *__s, float *__c);
155f85ae058SJohannes Doerfert void sincospi(double __a, double *__s, double *__c);
156f85ae058SJohannes Doerfert void sincospif(float __a, float *__s, float *__c);
157f85ae058SJohannes Doerfert float sinf(float __a);
158f85ae058SJohannes Doerfert double sinh(double __a);
159f85ae058SJohannes Doerfert float sinhf(float __a);
160f85ae058SJohannes Doerfert double sinpi(double __a);
161f85ae058SJohannes Doerfert float sinpif(float __a);
162f85ae058SJohannes Doerfert double sqrt(double __a);
163f85ae058SJohannes Doerfert float sqrtf(float __a);
164f85ae058SJohannes Doerfert double tan(double __a);
165f85ae058SJohannes Doerfert float tanf(float __a);
166f85ae058SJohannes Doerfert double tanh(double __a);
167f85ae058SJohannes Doerfert float tanhf(float __a);
168f85ae058SJohannes Doerfert double tgamma(double __a);
169f85ae058SJohannes Doerfert float tgammaf(float __a);
170f85ae058SJohannes Doerfert double trunc(double __a);
171f85ae058SJohannes Doerfert float truncf(float __a);
172f85ae058SJohannes Doerfert unsigned long long ullmax(unsigned long long __a,
173f85ae058SJohannes Doerfert                           unsigned long long __b);
174f85ae058SJohannes Doerfert unsigned long long ullmin(unsigned long long __a,
175f85ae058SJohannes Doerfert                           unsigned long long __b);
176f85ae058SJohannes Doerfert unsigned int umax(unsigned int __a, unsigned int __b);
177f85ae058SJohannes Doerfert unsigned int umin(unsigned int __a, unsigned int __b);
178f85ae058SJohannes Doerfert double y0(double __a);
179f85ae058SJohannes Doerfert float y0f(float __a);
180f85ae058SJohannes Doerfert double y1(double __a);
181f85ae058SJohannes Doerfert float y1f(float __a);
182f85ae058SJohannes Doerfert double yn(int __a, double __b);
183f85ae058SJohannes Doerfert float ynf(int __a, float __b);
184f85ae058SJohannes Doerfert 
185f85ae058SJohannes Doerfert /**
186f85ae058SJohannes Doerfert  * A positive float constant expression. HUGE_VALF evaluates
187f85ae058SJohannes Doerfert  * to +infinity. Used as an error value returned by the built-in
188f85ae058SJohannes Doerfert  * math functions.
189f85ae058SJohannes Doerfert  */
190f85ae058SJohannes Doerfert #define HUGE_VALF (__builtin_huge_valf())
191f85ae058SJohannes Doerfert 
192f85ae058SJohannes Doerfert /**
193f85ae058SJohannes Doerfert  * A positive double constant expression. HUGE_VAL evaluates
194f85ae058SJohannes Doerfert  * to +infinity. Used as an error value returned by the built-in
195f85ae058SJohannes Doerfert  * math functions.
196f85ae058SJohannes Doerfert  */
197f85ae058SJohannes Doerfert #define HUGE_VAL (__builtin_huge_val())
198*17d83342SJohannes Doerfert 
199*17d83342SJohannes Doerfert #ifdef __cplusplus
200*17d83342SJohannes Doerfert #include <cmath>
201*17d83342SJohannes Doerfert #endif
202