freebsd-dev/lib/msun
Ulrich Spörlein e61ffaea2a Fix bug in jn(3) and jnf(3) that led to -inf results
Explanation by Steve:
jn[f](n,x) for certain ranges of x uses downward recursion to compute
the value of the function.  The recursion sequence that is generated is
proportional to the actual desired value, so a normalization step is
taken.  This normalization is j0[f](x) divided by the zeroth sequence
member.  As Bruce notes, near the zeros of j0[f](x) the computed value
can have giga-ULP inaccuracy. I found for the 1st zero of j0f(x) only
the leading decimal digit is correct.  The solution to the issue is
fairly straight forward.  The zeros of j0(x) and j1(x) never coincide,
so as j0(x) approaches a zero, the normalization constant switches to
j1[f](x) divided by the 2nd sequence member.  The expectation is that
j1[f](x) is a more accurately computed value.

PR:		bin/144306
Submitted by:	Steven G. Kargl <kargl@troutmask.apl.washington.edu>
Reviewed by:	bde
MFC after:	7 days
2010-11-13 10:54:10 +00:00
..
amd64 Use __FBSDID() instead of RCSID() in most .S files under lib/msun/i386, 2010-10-01 20:14:36 +00:00
arm Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
bsdsrc Eliminate some warnings. 2008-02-22 02:26:51 +00:00
i387 Use __FBSDID() instead of RCSID() in most .S files under lib/msun/i386, 2010-10-01 20:14:36 +00:00
ia64 Use, in uncovered part, the END() macro in order to improve debugging. 2009-05-25 14:37:10 +00:00
ld80 On i386, gcc truncates long double constants to double precision 2008-08-02 03:56:22 +00:00
ld128 Add implementations of acosl(), asinl(), atanl(), atan2l(), 2008-07-31 22:41:26 +00:00
man Fix typos, spelling, formatting and mdoc mistakes found by Nobuyuki while 2010-08-16 15:18:30 +00:00
mips Symbol.map is handled by cpp, so use C-style comments 2008-05-03 21:16:08 +00:00
powerpc Let PowerPC world optionally build with -msoft-float. For FPU-less PowerPC 2008-02-24 19:22:53 +00:00
sparc64 Use C comments since we now preprocess these files with CPP. 2007-04-29 14:05:22 +00:00
src Fix bug in jn(3) and jnf(3) that led to -inf results 2010-11-13 10:54:10 +00:00
Makefile This is exactly the same as the .else, so remove it. 2010-09-13 04:23:23 +00:00
Symbol.map Introduce __isnanf() as an alias for isnanf(), and make the isnan() 2010-06-12 17:32:05 +00:00