glibc/sysdeps/sparc
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
..
bits
fpu Fix the inaccuracy of j0f/j1f/y0f/y1f [BZ #14469, #14470, #14471, #14472] 2021-04-02 06:15:48 +02:00
nptl
sparc32 Reduce the statically linked startup code [BZ #23323] 2021-02-25 12:13:02 +01:00
sparc64 Reduce the statically linked startup code [BZ #23323] 2021-02-25 12:13:02 +01:00
sys
abort-instr.h
atomic-machine.h
backtrace.c sparc: Implement backtrace on top <unwind-link.h> 2021-03-01 15:59:25 +01:00
configure
configure.ac
cpu_relax.c
crti.S
crtn.S
dl-dtprocnum.h
dl-procinfo.c
dl-procinfo.h
dl-sysdep.h
dl-tls.h
elf-initfini.h
gccframe.h
ldsodefs.h
machine-gmon.h
Makefile
mempcpy.S
memusage.h
preconfigure
sparc-ifunc.h
sparc-mcount.S
stackinfo.h
Subdirs
sysdep.h
unwind-arch.h Implement <unwind-link.h> for dynamically loading the libgcc_s unwinder 2021-03-01 15:58:01 +01:00