On 02/03/24 23:02, Morten Welinder wrote: > Thanks. > > There is (was?) already crlibm out there. > https://core-math.gitlabpages.inria.fr/ No particular need for wheel > reinvention here. > > FWIW, it appears that the author of the glibc exp10 implementation > agrees with me that the implementation is sub-standard: > > https://codebrowser.dev/glibc/glibc/math/e_exp10.c.html This code was not used by any port and we recently removed to avoid this very issue [1]. The exp10 implementation used by all ports is at sysdeps/ieee754/dbl-64/e_exp10.c (i386/m68k are exceptions and my plan to eventually remove this implementation in favor the generic one [2]). And the exp10 implementation was recently improved [3], with the author suggesting the worst-case error in round-to- should be nearest to 0.513 ULP (I am not sure if he did some empirical testing to verify this value, at least with libm-test-ulps the resuts are bounded to 2 ulp max). > > /* This is a very stupid and inprecise implementation. It'll get > replaced sometime (soon?). */ > return __ieee754_exp (M_LN10 * arg); > > > Compare with musl: > > https://github.com/rofl0r/musl/blob/master/src/math/exp10.c > [1] https://sourceware.org/git/?p=glibc.git;a=commit;h=9c61303ebbdc6e727c89591bff3229c9fbfa438b [2] https://sourceware.org/pipermail/libc-alpha/2024-January/154107.html [3] https://sourceware.org/git/?p=glibc.git;a=commit;h=63d0a35d5f223a3f4b68190567b7d4d44545bce5