Man page issues: logb, significand, cbrt, log2, log10, exp10

Wilco Dijkstra Wilco.Dijkstra@arm.com
Mon Mar 4 15:29:00 GMT 2024


Hi,

> FWIW, it appears that the author of the glibc exp10 implementation
> agrees with me that the implementation is sub-standard:

As Adhemerval pointed out, that was not the implementation used in GLIBC.
The version that was used, wasn't perfect, but still better than MUSL:

> Compare with musl:
>
> https://github.com/rofl0r/musl/blob/master/src/math/exp10.c

The worst case error of MUSL is 4.14 ULP vs 2.01 ULP of the old GLIBC exp10 [1].

And the new exp10 in GLIBC is 0.513 ULP [2].

As I pointed out in the PR, it would be reasonable for compilers to convert
pow (10, x) into exp10 (x) when it is known there is a good implementation
available - in GLIBC, exp10 is both faster and slightly more accurate than pow.

Cheers,
Wilco

[1] https://members.loria.fr/PZimmermann/papers/glibc238-20230921.pdf
[2] https://members.loria.fr/PZimmermann/papers/accuracy.pdf


More information about the Libc-alpha mailing list