4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-15 05:29:10 +08:00
Fabian Schriever 5fcf159b99 powf: Fix the hi+lo decomposition for 2/(3ln2) (FreeBSD)
The decomposition needs to be into 12+24 bits of precision for extra-
precision multiplication, but was into 13+24 bits. On i386 with -O1 the
bug was hidden by accidental extra precision, but on amd64, in 2^32
trials the bug caused about 200000 errors of more than 1 ulp, with a
maximum error of about 80 ulps. Now the maximum error in 2^32 trials
on amd64 is 0.8573 ulps. It is still 0.8316 ulps on i386 with -O1.

The nearby decomposition of 1/ln2 and the decomposition of 2/(3ln2) in
the double precision version seem to be sub-optimal but not broken.

Reference: b4437c3d32
Original Author: Bruce Evans
2024-09-19 13:58:12 -04:00
..
2022-03-16 22:01:19 -04:00
2023-08-17 18:14:15 -04:00
2023-12-04 10:26:41 +01:00