diff options
author | Andreas Jaeger <aj@suse.de> | 2003-12-28 20:51:20 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2003-12-28 20:51:20 +0000 |
commit | 1f510b3faa316bf025ce9544fd90ece3549bac05 (patch) | |
tree | 3ba1bc94e82d3f745a12cb37703a1242da39e72c /sysdeps/ieee754/ldbl-96 | |
parent | add144786f959da569ca4ad3a89c6efd409e762e (diff) | |
download | glibc-1f510b3faa316bf025ce9544fd90ece3549bac05.tar.gz glibc-1f510b3faa316bf025ce9544fd90ece3549bac05.tar.xz glibc-1f510b3faa316bf025ce9544fd90ece3549bac05.zip |
Update.
* sysdeps/ieee754/dbl-64/e_j0.c (__ieee754_y0): Raise only overflow for 0 as argument. Raise Invalid exception for negative args. * sysdeps/ieee754/dbl-64/e_jn.c (__ieee754_yn): Likewise. * sysdeps/ieee754/dbl-64/e_j1.c (__ieee754_y0): Likewise. * sysdeps/ieee754/ldb-128/e_jnl.c (__ieee754_ynl): Likewise. * sysdeps/ieee754/ldb-128/e_j0l.c (__ieee754_y0l): Likewise. * sysdeps/ieee754/ldb-128/e_j1l.c (__ieee754_y1l): Likewise. * sysdeps/ieee754/ldb-96/e_jnl.c (__ieee754_ynl): Likewise. * sysdeps/ieee754/ldb-96/e_j0l.c (__ieee754_y0l): Likewise. * sysdeps/ieee754/ldb-96/e_j1l.c (__ieee754_y1l): Likewise. * sysdeps/ieee754/flt-32/e_jnf.c (__ieee754_ynf): Likewise. * sysdeps/ieee754/flt-32/e_j0f.c (__ieee754_y0f): Likewise. * sysdeps/ieee754/flt-32/e_j1f.c (__ieee754_y1f): Likewise. * math/libm-test.inc (yn_test): Expect invalid exception for negative arguments. (y0_test): Likewise. (y1_test): Likewise.
Diffstat (limited to 'sysdeps/ieee754/ldbl-96')
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_j0l.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_j1l.c | 4 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-96/e_jnl.c | 6 |
3 files changed, 7 insertions, 7 deletions
diff --git a/sysdeps/ieee754/ldbl-96/e_j0l.c b/sysdeps/ieee754/ldbl-96/e_j0l.c index 4439fa641e..12c906bcbc 100644 --- a/sysdeps/ieee754/ldbl-96/e_j0l.c +++ b/sysdeps/ieee754/ldbl-96/e_j0l.c @@ -232,11 +232,11 @@ __ieee754_y0l (x) ix = se & 0x7fff; /* Y0(NaN) is NaN, y0(-inf) is Nan, y0(inf) is 0 */ if (se & 0x8000) - return zero / zero; + return zero / (zero * x); if (ix >= 0x7fff) return one / (x + x * x); if ((i0 | i1) == 0) - return -one / zero; + return -HUGE_VALL + x; /* -inf and overflow exception. */ if (ix >= 0x4000) { /* |x| >= 2.0 */ diff --git a/sysdeps/ieee754/ldbl-96/e_j1l.c b/sysdeps/ieee754/ldbl-96/e_j1l.c index 1ec63c4b44..62a8ce0cb7 100644 --- a/sysdeps/ieee754/ldbl-96/e_j1l.c +++ b/sysdeps/ieee754/ldbl-96/e_j1l.c @@ -224,11 +224,11 @@ __ieee754_y1l (x) ix = se & 0x7fff; /* if Y1(NaN) is NaN, Y1(-inf) is NaN, Y1(inf) is 0 */ if (se & 0x8000) - return zero / zero; + return zero / (zero * x); if (ix >= 0x7fff) return one / (x + x * x); if ((i0 | i1) == 0) - return -one / zero; + return -HUGE_VALL + x; /* -inf and overflow exception. */ if (ix >= 0x4000) { /* |x| >= 2.0 */ __sincosl (x, &s, &c); diff --git a/sysdeps/ieee754/ldbl-96/e_jnl.c b/sysdeps/ieee754/ldbl-96/e_jnl.c index 0f2f393230..3d715d36aa 100644 --- a/sysdeps/ieee754/ldbl-96/e_jnl.c +++ b/sysdeps/ieee754/ldbl-96/e_jnl.c @@ -36,7 +36,7 @@ * of order n * * Special cases: - * y0(0)=y1(0)=yn(n,0) = -inf with division by zero signal; + * y0(0)=y1(0)=yn(n,0) = -inf with overflow signal; * y0(-ve)=y1(-ve)=yn(n,-ve) are NaN with invalid signal. * Note 2. About jn(n,x), yn(n,x) * For n=0, j0(x) is called, @@ -312,9 +312,9 @@ __ieee754_ynl (n, x) if ((ix == 0x7fff) && ((i0 & 0x7fffffff) != 0)) return x + x; if ((ix | i0 | i1) == 0) - return -one / zero; + return -HUGE_VALL + x; /* -inf and overflow exception. */ if (se & 0x8000) - return zero / zero; + return zero / (zero * x); sign = 1; if (n < 0) { |