summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_descrip.c
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>2008-02-14 10:23:51 +0000
committerbde <bde@FreeBSD.org>2008-02-14 10:23:51 +0000
commit30aa45f24bdd40449d3297b08a7214d362264c2c (patch)
treeeecd0f2848ca3fb211d860c67e20841017768b81 /sys/kern/kern_descrip.c
parent73c193c7ba88117b3900b03b2c49dc0b8e76219a (diff)
downloadFreeBSD-src-30aa45f24bdd40449d3297b08a7214d362264c2c.zip
FreeBSD-src-30aa45f24bdd40449d3297b08a7214d362264c2c.tar.gz
Fix the hi+lo decomposition for 2/(3ln2). 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.
Diffstat (limited to 'sys/kern/kern_descrip.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud