]> git.ipfire.org Git - thirdparty/glibc.git/blob - include/math.h
Add support for sqrt asm redirects
[thirdparty/glibc.git] / include / math.h
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. */
11 extern int __signgam;
12
13 # if IS_IN (libc) || IS_IN (libm)
14 hidden_proto (__finite)
15 hidden_proto (__isinf)
16 hidden_proto (__isnan)
17 hidden_proto (__finitef)
18 hidden_proto (__isinff)
19 hidden_proto (__isnanf)
20
21 # ifndef __NO_LONG_DOUBLE_MATH
22 hidden_proto (__finitel)
23 hidden_proto (__isinfl)
24 hidden_proto (__isnanl)
25 # endif
26
27 # if __HAVE_DISTINCT_FLOAT128
28 hidden_proto (__finitef128)
29 hidden_proto (__isinff128)
30 hidden_proto (__isnanf128)
31 hidden_proto (__signbitf128)
32 # endif
33 # endif
34
35 libm_hidden_proto (__fpclassify)
36 libm_hidden_proto (__fpclassifyf)
37 libm_hidden_proto (__issignaling)
38 libm_hidden_proto (__issignalingf)
39 libm_hidden_proto (__exp)
40 libm_hidden_proto (__expf)
41 libm_hidden_proto (__roundeven)
42
43 # ifndef __NO_LONG_DOUBLE_MATH
44 libm_hidden_proto (__fpclassifyl)
45 libm_hidden_proto (__issignalingl)
46 libm_hidden_proto (__expl)
47 libm_hidden_proto (__expm1l)
48 # endif
49
50 # if __HAVE_DISTINCT_FLOAT128
51 libm_hidden_proto (__fpclassifyf128)
52 libm_hidden_proto (__issignalingf128)
53 libm_hidden_proto (__expf128)
54 libm_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. */
61 float (sqrtf) (float) asm ("__ieee754_sqrtf");
62 double (sqrt) (double) asm ("__ieee754_sqrt");
63 # ifndef __NO_LONG_DOUBLE_MATH
64 long 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