glibc/sysdeps/ieee754
Paul Zimmermann 9acda61d94 Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472]
For j0f/j1f/y0f/y1f, the largest error for all binary32
inputs is reduced to at most 9 ulps for all rounding modes.

The new code is enabled only when there is a cancellation at the very end of
the j0f/j1f/y0f/y1f computation, or for very large inputs, thus should not
give any visible slowdown on average.  Two different algorithms are used:

* around the first 64 zeros of j0/j1/y0/y1, approximation polynomials of
  degree 3 are used, computed using the Sollya tool (https://www.sollya.org/)

* for large inputs, an asymptotic formula from [1] is used

[1] Fast and Accurate Bessel Function Computation,
    John Harrison, Proceedings of Arith 19, 2009.

Inputs yielding the new largest errors are added to auto-libm-test-in,
and ulps are regenerated for various targets (thanks Adhemerval Zanella).

Tested on x86_64 with --disable-multi-arch and on powerpc64le-linux-gnu.
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
2021-04-02 06:15:48 +02:00
..
dbl-64 math: Remove mpa files (part 2) [BZ #15267] 2021-03-11 15:45:19 +00:00
float128 Move __isnanf128 to libc.so 2021-03-30 14:58:19 +05:30
flt-32 Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472] 2021-04-02 06:15:48 +02:00
ldbl-64-128 Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ldbl-96 Drop nan-pseudo-number.h usage from tests 2021-01-04 20:49:56 +05:30
ldbl-128 Move __isnanf128 to libc.so 2021-03-30 14:58:19 +05:30
ldbl-128ibm Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ldbl-128ibm-compat Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ldbl-opt Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
soft-fp Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
ieee754.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
k_standard.c Use copysign functions not __copysign functions in glibc libm. 2018-09-27 20:04:48 +00:00
k_standardf.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
k_standardl.c Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
libm-alias-finite.h Update copyright dates with scripts/update-copyrights 2021-01-02 12:17:34 -08:00
Makefile Avoid -Wno-write-strings for k_standard.c. 2015-02-26 22:50:54 +00:00
s_lib_version.c Simplify math-svid-compat code. 2017-08-28 15:19:52 +00:00
s_matherr.c Obsolete matherr, _LIB_VERSION, libieee.a. 2017-08-21 17:45:10 +00:00
s_signgam.c Remove unnecessary math_private.h includes. 2018-09-28 21:53:33 +00:00