summary refs log tree commit diff
path: root/sysdeps/ieee754/flt-32/e_j0f.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/ieee754/flt-32/e_j0f.c')
-rw-r--r--sysdeps/ieee754/flt-32/e_j0f.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/sysdeps/ieee754/flt-32/e_j0f.c b/sysdeps/ieee754/flt-32/e_j0f.c
index b3b20524f9..8c499e614e 100644
--- a/sysdeps/ieee754/flt-32/e_j0f.c
+++ b/sysdeps/ieee754/flt-32/e_j0f.c
@@ -131,10 +131,10 @@ v04  =  4.4111031494e-10; /* 0x2ff280c2 */
 
 	GET_FLOAT_WORD(hx,x);
         ix = 0x7fffffff&hx;
-    /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0  */
+    /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0, y0(0) is -inf.  */
 	if(ix>=0x7f800000) return  one/(x+x*x);
-        if(ix==0) return -one/zero;
-        if(hx<0) return zero/zero;
+        if(ix==0) return -HUGE_VALF+x;  /* -inf and overflow exception.  */
+        if(hx<0) return zero/(zero*x);
         if(ix >= 0x40000000) {  /* |x| >= 2.0 */
         /* y0(x) = sqrt(2/(pi*x))*(p0(x)*sin(x0)+q0(x)*cos(x0))
          * where x0 = x-pi/4