aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Jaeger <aj@suse.de>2001-08-27 13:55:13 +0000
committerAndreas Jaeger <aj@suse.de>2001-08-27 13:55:13 +0000
commitfa9ced58f6e12a594e5250df52875cf1d67a50f0 (patch)
treee3ac76bb393e0e98fdedf9bbb55485d67983dcf5
parent82ad8034aa1f812bf221ab0d2fc2fc55e2d44654 (diff)
downloadglibc-fa9ced58f6e12a594e5250df52875cf1d67a50f0.tar
glibc-fa9ced58f6e12a594e5250df52875cf1d67a50f0.tar.gz
glibc-fa9ced58f6e12a594e5250df52875cf1d67a50f0.tar.bz2
glibc-fa9ced58f6e12a594e5250df52875cf1d67a50f0.zip
* sysdeps/i386/fpu/libm-test-ulps (float): Add ulps for new tests.
* math/libm-test.inc (j0_test): Add extra tests. * sysdeps/ieee754/ldbl-128/e_j0l.c (__ieee754_j0l): Use |x|, not x, in Hankel approximation. Patches by Stephen L Moshier.
-rw-r--r--math/libm-test.inc2
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps17
-rw-r--r--sysdeps/ieee754/ldbl-128/e_j0l.c8
3 files changed, 23 insertions, 4 deletions
diff --git a/math/libm-test.inc b/math/libm-test.inc
index 118f00a9ba..9c56e1cbc8 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -2865,6 +2865,8 @@ j0_test (void)
TEST_f_f (j0, 2.0, 0.22389077914123566805L);
TEST_f_f (j0, 8.0, 0.17165080713755390609L);
TEST_f_f (j0, 10.0, -0.24593576445134833520L);
+ TEST_f_f (j0, 4.0, -3.9714980986384737228659076845169804197562E-1L);
+ TEST_f_f (j0, -4.0, -3.9714980986384737228659076845169804197562E-1L);
END (j0);
}
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index 82d167cd18..76fb9f26f3 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -681,6 +681,21 @@ ifloat: 1
Test "j0 (10.0) == -0.24593576445134833520":
double: 2
idouble: 2
+Test "j0 (4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+Test "j0 (-4.0) == -3.9714980986384737228659076845169804197562E-1":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
# j1
Test "j1 (10.0) == 0.043472746168861436670":
@@ -1500,6 +1515,8 @@ float: 1
ifloat: 1
double: 2
idouble: 2
+ldouble: 1
+ildouble: 1
Function: "j1":
double: 2
diff --git a/sysdeps/ieee754/ldbl-128/e_j0l.c b/sysdeps/ieee754/ldbl-128/e_j0l.c
index 22a43848b2..e0a61f0658 100644
--- a/sysdeps/ieee754/ldbl-128/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-128/e_j0l.c
@@ -754,16 +754,16 @@ __ieee754_j0l (long double x)
= 1/sqrt(2) * (sin(x) - cos(x))
sin(x) +- cos(x) = -cos(2x)/(sin(x) -+ cos(x))
cf. Fdlibm. */
- c = cosl (x);
- s = sinl (x);
+ c = cosl (xx);
+ s = sinl (xx);
ss = s - c;
cc = s + c;
- z = -cosl (x + x);
+ z = -cosl (xx + xx);
if ((s * c) < 0)
cc = z / ss;
else
ss = z / cc;
- z = ONEOSQPI * (p * cc - q * ss) / sqrtl (x);
+ z = ONEOSQPI * (p * cc - q * ss) / sqrtl (xx);
return z;
}