mirror of
https://github.com/opnsense/src.git
synced 2026-06-14 19:20:18 -04:00
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
(cherry-picked from commit
|
||
|---|---|---|
| .. | ||
| aarch64 | ||
| amd64 | ||
| arm | ||
| bsdsrc | ||
| i387 | ||
| ld80 | ||
| ld128 | ||
| man | ||
| powerpc | ||
| riscv | ||
| src | ||
| tests | ||
| x86 | ||
| Makefile | ||
| Makefile.depend | ||
| Symbol.map | ||