mirror of git://sourceware.org/git/glibc.git
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> |
||
|---|---|---|
| .. | ||
| bits | ||
| fclrexcpt.c | ||
| fedisblxcpt.c | ||
| feenablxcpt.c | ||
| fegetenv.c | ||
| fegetexcept.c | ||
| fegetmode.c | ||
| fegetround.c | ||
| feholdexcpt.c | ||
| fenv_private.h | ||
| fesetenv.c | ||
| fesetexcept.c | ||
| fesetmode.c | ||
| fesetround.c | ||
| feupdateenv.c | ||
| fgetexcptflg.c | ||
| fpu_control.h | ||
| fraiseexcpt.c | ||
| fsetexcptflg.c | ||
| ftestexcept.c | ||
| libm-test-ulps | ||
| libm-test-ulps-name | ||
| math-use-builtins-sqrt.h | ||