#include <libm-alias-float.h>
-#if LIBM_SVID_COMPAT
+#if LIBM_SVID_COMPAT && SHLIB_COMPAT (libm, GLIBC_2_0, GLIBC_2_43)
/* wrapper j1f */
float
-__j1f (float x)
+__j1f_svid (float x)
{
if (__builtin_expect (isgreater (fabsf (x),
AS_FLOAT_CONSTANT (X_TLOSS)), 0)
return __ieee754_j1f (x);
}
-libm_alias_float (__j1, j1)
+compat_symbol (libm, __j1f_svid, j1f, GLIBC_2_0);
/* wrapper y1f */
float
-__y1f (float x)
+__y1f_svid (float x)
{
if (__builtin_expect (islessequal (x, 0.0f)
|| isgreater (x, AS_FLOAT_CONSTANT (X_TLOSS)), 0)
return __ieee754_y1f (x);
}
-libm_alias_float (__y1, y1)
+compat_symbol (libm, __y1f_svid, y1f, GLIBC_2_0);
#endif
#include <fenv_private.h>
#include <math-underflow.h>
#include <libm-alias-finite.h>
+#include <libm-alias-float.h>
+#include <math-svid-compat.h>
#include <reduce_aux.h>
+#include "math_config.h"
static float ponef(float), qonef(float);
}
float
-__ieee754_j1f(float x)
+__j1f(float x)
{
float z, s,c,ss,cc,r,u,v,y;
int32_t hx,ix;
r *= x;
return(x*(float)0.5+r/s);
}
+strong_alias (__j1f, __ieee754_j1f)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __j1f, j1f, GLIBC_2_43);
+libm_alias_float_other (__j1, j1)
+#else
+libm_alias_float (__j1, j1)
+#endif
libm_alias_finite (__ieee754_j1f, __j1f)
static const float U0[5] = {
}
float
-__ieee754_y1f(float x)
+__y1f(float x)
{
float z, s,c,ss,cc,u,v;
int32_t hx,ix;
GET_FLOAT_WORD(hx,x);
ix = 0x7fffffff&hx;
/* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */
- if(__builtin_expect(ix>=0x7f800000, 0)) return one/(x+x*x);
- if(__builtin_expect(ix==0, 0))
- return -1/zero; /* -inf and divide by zero exception. */
- if(__builtin_expect(hx<0, 0)) return zero/(zero*x);
+ if(ix>=0x7f800000)
+ {
+ if (hx==0xFF800000)
+ return __math_invalidf (1);
+ else
+ return one/(x+x*x);
+ }
+ if(ix==0) return __math_divzerof (1); /* -inf and divide by zero exception. */
+ if(hx<0) return __math_invalidf (x);
if (ix >= 0x3fe0dfbc) { /* |x| >= 0x1.c1bf78p+0 */
SET_RESTORE_ROUNDF (FE_TONEAREST);
__sincosf (x, &s, &c);
v = one+z*(V0[0]+z*(V0[1]+z*(V0[2]+z*(V0[3]+z*V0[4]))));
return(x*(u/v) + tpi*(__ieee754_j1f(x)*__ieee754_logf(x)-one/x));
}
+strong_alias (__y1f, __ieee754_y1f)
+#if LIBM_SVID_COMPAT
+versioned_symbol (libm, __y1f, y1f, GLIBC_2_43);
+libm_alias_float_other (__y1, y1)
+#else
+libm_alias_float (__y1, y1)
+#endif
libm_alias_finite (__ieee754_y1f, __y1f)
/* For x >= 8, the asymptotic expansion of pone is