blob: 068c245c6cc22adcd4ccbe32c9f2897f073b7cbd [file] [log] [blame]
Elliott Hughes13da6002025-02-03 10:42:13 -08001// Copyright (C) 2017 The Android Open Source Project
2// SPDX-License-Identifier: BSD-2-Clause
Elliott Hughes21b56eb2017-10-20 17:57:17 -07003
4#include <tgmath.h>
5
6#include "header_checks.h"
7
8#define TGMATH(f_) f_(f1); f_(d1); f_(ld1);
9#define TGMATHC(f_) f_(f1); f_(d1); f_(ld1); f_(fc1); f_(dc1); f_(ldc1);
10#define TGMATHCONLY(f_) f_(fc1); f_(dc1); f_(ldc1);
11#define TGMATH2(f_) f_(f1, f2); f_(d1, d2); f_(ld1, ld2);
12#define TGMATH2C(f_) f_(f1, f2); f_(d1, d2); f_(ld1, ld2); f_(fc1, fc2); f_(dc1, dc2); f_(ldc1, ldc2);
13#define TGMATH3(f_) f_(f1, f2, f3); f_(d1, d2, d3); f_(ld1, ld2, ld3);
14
15static void tgmath_h() {
16 float f1, f2, f3;
17 f1 = f2 = f3 = 0;
18 float complex fc1, fc2, fc3;
19 fc1 = fc2 = fc3 = 0;
20 double d1, d2, d3;
21 d1 = d2 = d3 = 0;
22 double complex dc1, dc2, dc3;
23 dc1 = dc2 = dc3 = 0;
24 long double ld1, ld2, ld3;
25 ld1 = ld2 = ld3 = 0;
26 long double complex ldc1, ldc2, ldc3;
27 ldc1 = ldc2 = ldc3 = 0;
28 int i = 0;
29 long l = 0;
30
31 TGMATHC(acos);
32 TGMATHC(asin);
33 TGMATHC(atan);
34 TGMATHC(acosh);
35 TGMATHC(asinh);
36 TGMATHC(atanh);
37 TGMATHC(cos);
38 TGMATHC(sin);
39 TGMATHC(tan);
40 TGMATHC(cosh);
41 TGMATHC(sinh);
42 TGMATHC(tanh);
43 TGMATHC(exp);
44 TGMATHC(log);
45 TGMATH2C(pow);
46 TGMATHC(sqrt);
47 TGMATHC(fabs);
48
49 TGMATH2(atan2);
50 TGMATH(cbrt);
51 TGMATH(ceil);
52 TGMATH2(copysign);
53 TGMATH(erf);
54 TGMATH(erfc);
55 TGMATH(exp2);
56 TGMATH(expm1);
57 TGMATH2(fdim);
58 TGMATH(floor);
59 TGMATH3(fma);
60 TGMATH2(fmax);
61 TGMATH2(fmin);
62 TGMATH2(fmod);
63 frexp(f1, &i); frexp(d1, &i); frexp(ld1, &i);
64 TGMATH2(hypot);
65 TGMATH(ilogb);
66 ldexp(f1, i); ldexp(d1, i); ldexp(ld1, i);
67 TGMATH(lgamma);
68 TGMATH(llrint);
69 TGMATH(llround);
70 TGMATH(log10);
71 TGMATH(log1p);
72 TGMATH(log2);
73 TGMATH(logb);
74 TGMATH(lrint);
75 TGMATH(lround);
76 TGMATH(nearbyint);
77 TGMATH2(nextafter);
78 TGMATH2(nexttoward);
79 TGMATH2(remainder);
80 remquo(f1, f2, &i); remquo(d1, d2, &i); remquo(ld1, ld2, &i);
81 TGMATH(rint);
82 TGMATH(round);
83 scalbln(f1, l); scalbln(d1, l); scalbln(ld1, l);
84 scalbn(f1, i); scalbn(d1, i); scalbn(ld1, i);
85 TGMATH(tgamma);
86 TGMATH(trunc);
87
88 TGMATHCONLY(carg);
89 TGMATHCONLY(cimag);
90 TGMATHCONLY(conj);
91 TGMATHCONLY(cproj);
92 TGMATHCONLY(creal);
93}