diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2015-03-18 22:32:22 +0100 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2015-03-18 22:32:22 +0100 |
commit | 6c4538905e65ceb203f59aaa9a61728e81c6bc0a (patch) | |
tree | 241337035488fb2b179340d79a5ec4539f5fc09a /libm/float_wrappers.c | |
parent | 78e6494c2cf677d170a5c4ce0f46d152d478abc0 (diff) |
libm: Add missing C99 float/ld wrappers
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Diffstat (limited to 'libm/float_wrappers.c')
-rw-r--r-- | libm/float_wrappers.c | 62 |
1 files changed, 41 insertions, 21 deletions
diff --git a/libm/float_wrappers.c b/libm/float_wrappers.c index 82b7963e1..105486e46 100644 --- a/libm/float_wrappers.c +++ b/libm/float_wrappers.c @@ -38,19 +38,14 @@ long long func##f (float x) \ return func((double)x); \ } - -/* For the time being, do _NOT_ implement these functions - * that are defined by SuSv3 [because we don't need them - * and nobody asked to include them] */ -#undef L_fdimf /*float fdimf(float, float);*/ -#undef L_fmaf /*float fmaf(float, float, float);*/ -#undef L_fmaxf /*float fmaxf(float, float);*/ -#undef L_fminf /*float fminf(float, float);*/ -#undef L_nearbyintf /*float nearbyintf(float);*/ -#undef L_nexttowardf /*float nexttowardf(float, long double);*/ -#undef L_remquof /*float remquof(float, float, int *);*/ -#undef L_scalblnf /*float scalblnf(float, long);*/ -#undef L_tgammaf /*float tgammaf(float);*/ +#ifndef __DO_XSI_MATH__ +# undef L_j0f /* float j0f(float x); */ +# undef L_j1f /* float j1f(float x); */ +# undef L_jnf /* float jnf(int n, float x); */ +# undef L_y0f /* float y0f(float x); */ +# undef L_y1f /* float y1f(float x); */ +# undef L_ynf /* float ynf(int n, float x); */ +#endif /* Implement the following, as defined by SuSv3 */ #if 0 @@ -155,6 +150,7 @@ float copysignf (float x, float y) #ifdef L_cosf WRAPPER1(cos) +libm_hidden_def(cosf) #endif #ifdef L_coshf @@ -242,6 +238,21 @@ float hypotf (float x, float y) int_WRAPPER1(ilogb) #endif +#ifdef L_j0f +WRAPPER1(j0) +#endif + +#ifdef L_j1f +WRAPPER1(j1) +#endif + +#ifdef L_jnf +float jnf(int n, float x) +{ + return (float) jn(n, (double)x); +} +#endif + #ifdef L_ldexpf float ldexpf (float x, int _exp) { @@ -306,7 +317,7 @@ WRAPPER1(nearbyint) #ifdef L_nexttowardf float nexttowardf (float x, long double y) { - return (float) nexttoward( (double)x, (double)y ); + return (float) nexttoward( (double)x, (long double)y ); } #endif @@ -355,6 +366,7 @@ float scalbnf (float x, int _exp) #ifdef L_sinf WRAPPER1(sin) +libm_hidden_def(sinf) #endif #ifdef L_sinhf @@ -381,13 +393,6 @@ WRAPPER1(tgamma) WRAPPER1(trunc) #endif -#ifdef L_fmaf -float fmaf (float x, float y, float z) -{ - return (float) fma( (double)x, (double)y, (double)z ); -} -#endif - #if defined L_scalbf && defined __UCLIBC_SUSV3_LEGACY__ float scalbf (float x, float y) { @@ -402,3 +407,18 @@ WRAPPER1(gamma) #ifdef L_significandf WRAPPER1(significand) #endif + +#ifdef L_y0f +WRAPPER1(y0) +#endif + +#ifdef L_y1f +WRAPPER1(y1) +#endif + +#ifdef L_ynf +float ynf(int n, float x) +{ + return (float) yn(n, (double)x); +} +#endif |