diff options
author | Andreas Jaeger <aj@suse.de> | 2001-08-27 13:55:13 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2001-08-27 13:55:13 +0000 |
commit | fa9ced58f6e12a594e5250df52875cf1d67a50f0 (patch) | |
tree | e3ac76bb393e0e98fdedf9bbb55485d67983dcf5 | |
parent | 82ad8034aa1f812bf221ab0d2fc2fc55e2d44654 (diff) | |
download | glibc-fa9ced58f6e12a594e5250df52875cf1d67a50f0.zip glibc-fa9ced58f6e12a594e5250df52875cf1d67a50f0.tar.gz glibc-fa9ced58f6e12a594e5250df52875cf1d67a50f0.tar.bz2 |
* 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.inc | 2 | ||||
-rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 17 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/e_j0l.c | 8 |
3 files changed, 23 insertions, 4 deletions
diff --git a/math/libm-test.inc b/math/libm-test.inc index 118f00a..9c56e1c 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 82d167c..76fb9f2 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 22a4384..e0a61f0 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; } |