freebsd-src/lib/msun/ld128
Mark Murray e38f230827 lib/msun: Fix tgammal(3) on IEEE 128-bit platforms
Undo the 80-bit "stub" implementation of the 128-bit long double
tgammal(3) function. The latest (as of Feb 2024) version of the
src/contrib/arm-optimised-routines library includes a standalone,
full 128-bit replacement. This needs a small bit of wrapping to
fit it in, but is otherwise a drop-in replacement.

Testing this is hard, as most maths packages blow up as soon as
their 80-bit floating-point capability is exceeded. With 128-bit
tgammal(), this is easy to do, and this is the range that needs to
be checked the most carefully. Using my copy of Maple, I was able
to check that the output was within a few ULP of the correct answer,
right up to the point of 128-bit over- and underflow. Additionally,
the results are no worse, and indeed better than the 80-bit version.

Steve Kargl sent me his libm testing code, which I used to verify
that the excpetions for certain key values were correct. Tested in
this case were +-Inf, +-NaN, +-1 and +-0.

Differential Revision:	https://reviews.freebsd.org/D44168
Reviewed by:	theraven, andrew, imp
2024-03-18 09:48:43 +00:00
..
b_tgammal.c lib/msun: Fix tgammal(3) on IEEE 128-bit platforms 2024-03-18 09:48:43 +00:00
e_lgammal_r.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
e_powl.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
e_rem_pio2l.h lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
invtrig.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
invtrig.h Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
k_cosl.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
k_cospil.h [LIBM] implementations of sinpi[fl], cospi[fl], and tanpi[fl] 2021-10-26 02:50:20 +03:00
k_expl.h lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
k_sinl.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
k_sinpil.h [LIBM] implementations of sinpi[fl], cospi[fl], and tanpi[fl] 2021-10-26 02:50:20 +03:00
k_tanl.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
s_cexpl.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
s_cospil.c Fixes for bugs in sinpi/cospi/tanpi 2023-08-03 07:27:58 +03:00
s_erfl.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
s_exp2l.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
s_expl.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
s_logl.c lib/msun: Cleanup after $FreeBSD$ removal 2024-01-28 17:00:23 +02:00
s_nanl.c Remove $FreeBSD$: two-line .h pattern 2023-08-16 11:54:16 -06:00
s_sinpil.c Fixes for bugs in sinpi/cospi/tanpi 2023-08-03 07:27:58 +03:00
s_tanpil.c Fixes for bugs in sinpi/cospi/tanpi 2023-08-03 07:27:58 +03:00