• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (C) 2017 The Android Open Source Project
2 // SPDX-License-Identifier: BSD-2-Clause
3 
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 
tgmath_h()15 static 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 }
94