* 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.
This commit is contained in:
Andreas Jaeger 2001-08-27 13:55:13 +00:00
parent 82ad8034aa
commit fa9ced58f6
3 changed files with 23 additions and 4 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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;
}