mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-26 04:31:03 +00:00
2ca725c594
The threshold in ldbl-96 atanhl for when to return the argument, 0x1p-28, is a bit too big, and that in ldbl-128ibm atanhl is much too big (the relevant condition being x^3/3 being < 0.5ulp of x), resulting in errors a bit above the limits of those considered acceptable in glibc in the ldbl-96 case, and in large errors in the ldbl-128ibm case. This patch changes those implementations to use more appropriate thresholds and adds tests around the thresholds for various formats. Tested for x86_64, x86 and powerpc. x86_64 and x86 ulps updated accordingly. [BZ #18046] [BZ #18047] * sysdeps/ieee754/ldbl-128ibm/e_atanhl.c (__ieee754_atanhl): Use 0x1p-56L as threshold for just returning the argument. * sysdeps/ieee754/ldbl-96/e_atanhl.c (__ieee754_atanhl): Use 0x1p-32L as threshold for just returning the argument. * math/auto-libm-test-in: Add more tests of atanh. * math/auto-libm-test-out: Regenerated. * sysdeps/i386/fpu/libm-test-ulps: Update. * sysdeps/x86_64/fpu/libm-test-ulp: Likewise. |
||
---|---|---|
.. | ||
e_acoshl.c | ||
e_asinl.c | ||
e_atanhl.c | ||
e_coshl.c | ||
e_gammal_r.c | ||
e_hypotl.c | ||
e_j0l.c | ||
e_j1l.c | ||
e_jnl.c | ||
e_lgammal_r.c | ||
e_rem_pio2l.c | ||
e_sinhl.c | ||
gamma_product.c | ||
gamma_productl.c | ||
k_cosl.c | ||
k_sinl.c | ||
k_tanl.c | ||
ldbl2mpn.c | ||
math_ldbl.h | ||
mpn2ldbl.c | ||
printf_fphex.c | ||
s_asinhl.c | ||
s_cbrtl.c | ||
s_copysignl.c | ||
s_cosl.c | ||
s_erfl.c | ||
s_fma.c | ||
s_fmal.c | ||
s_frexpl.c | ||
s_isinf_nsl.c | ||
s_issignalingl.c | ||
s_llrintl.c | ||
s_llroundl.c | ||
s_lrintl.c | ||
s_lroundl.c | ||
s_modfl.c | ||
s_nexttoward.c | ||
s_nexttowardf.c | ||
s_remquol.c | ||
s_roundl.c | ||
s_scalblnl.c | ||
s_signbitl.c | ||
s_sincosl.c | ||
s_sinl.c | ||
s_tanhl.c | ||
s_tanl.c | ||
strtold_l.c | ||
t_sincosl.c | ||
w_expl.c | ||
x2y2m1.c | ||
x2y2m1l.c |