1#ifndef _MATH_H
2
3#ifdef _ISOMAC
4# undef NO_LONG_DOUBLE
5#endif
6
7#include <math/math.h>
8
9#ifndef _ISOMAC
10/* Now define the internal interfaces. */
11extern int __signgam;
12
13# if IS_IN (libc) || IS_IN (libm)
14hidden_proto (__finite)
15hidden_proto (__isinf)
16hidden_proto (__isnan)
17hidden_proto (__finitef)
18hidden_proto (__isinff)
19hidden_proto (__isnanf)
20
21# ifndef __NO_LONG_DOUBLE_MATH
22hidden_proto (__finitel)
23hidden_proto (__isinfl)
24hidden_proto (__isnanl)
25# endif
26
27# if __HAVE_DISTINCT_FLOAT128
28hidden_proto (__finitef128)
29hidden_proto (__isinff128)
30hidden_proto (__isnanf128)
31hidden_proto (__signbitf128)
32# endif
33# endif
34
35libm_hidden_proto (__fpclassify)
36libm_hidden_proto (__fpclassifyf)
37libm_hidden_proto (__issignaling)
38libm_hidden_proto (__issignalingf)
39libm_hidden_proto (__exp)
40libm_hidden_proto (__expf)
41libm_hidden_proto (__roundeven)
42
43# ifndef __NO_LONG_DOUBLE_MATH
44libm_hidden_proto (__fpclassifyl)
45libm_hidden_proto (__issignalingl)
46libm_hidden_proto (__expl)
47libm_hidden_proto (__expm1l)
48# endif
49
50# if __HAVE_DISTINCT_FLOAT128
51libm_hidden_proto (__fpclassifyf128)
52libm_hidden_proto (__issignalingf128)
53libm_hidden_proto (__expf128)
54libm_hidden_proto (__expm1f128)
55# endif
56
57# if !(defined __FINITE_MATH_ONLY__ && __FINITE_MATH_ONLY__ > 0)
58# ifndef NO_MATH_REDIRECT
59/* Declare sqrt for use within GLIBC. Compilers typically inline sqrt as a
60 single instruction. Use an asm to avoid use of PLTs if it doesn't. */
61float (sqrtf) (float) asm ("__ieee754_sqrtf");
62double (sqrt) (double) asm ("__ieee754_sqrt");
63# ifndef __NO_LONG_DOUBLE_MATH
64long double (sqrtl) (long double) asm ("__ieee754_sqrtl");
65# endif
66# if __HAVE_DISTINCT_FLOAT128 > 0
67_Float128 (sqrtf128) (_Float128) asm ("__ieee754_sqrtf128");
68# endif
69# endif
70# endif
71
72#endif
73#endif
74