freebsd-src/lib/msun/man
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
..
acos.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
acosh.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
asin.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
asinh.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
atan.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
atan2.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
atanh.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
cacos.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
ccos.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
ccosh.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
ceil.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
cexp.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
cimag.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
clog.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
complex.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
copysign.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
cos.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
cosh.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
cospi.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
cpow.3 Remove $FreeBSD$: one-line nroff pattern 2023-08-16 11:55:15 -06:00
csqrt.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
erf.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
exp.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
fabs.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
fdim.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
feclearexcept.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
feenableexcept.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
fegetenv.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
fegetround.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
fenv.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
floor.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
fma.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
fmax.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
fmod.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
hypot.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
ieee.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
ieee_test.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
ilogb.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
j0.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
lgamma.3 lib/msun: Fix tgammal(3) on IEEE 128-bit platforms 2024-03-18 09:48:43 +00:00
log.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
lrint.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
lround.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
math.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
nan.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
nextafter.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
remainder.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
rint.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
round.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
scalbn.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
signbit.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
sin.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
sincos.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
sinh.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
sinpi.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
sqrt.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
tan.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
tanh.3 lib: Remove ancient SCCS tags. 2023-11-26 22:23:28 -07:00
tanpi.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00
trunc.3 Remove $FreeBSD$: two-line nroff pattern 2023-08-16 11:55:10 -06:00