Page MenuHomeFreeBSD

Allow lib/msun/logarithm_test to pass on ld128 platforms
ClosedPublic

Authored by arichardson on Mar 3 2021, 4:28 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Dec 5, 9:13 PM
Unknown Object (File)
Nov 17 2024, 8:28 AM
Unknown Object (File)
Nov 17 2024, 5:44 AM
Unknown Object (File)
Nov 17 2024, 5:13 AM
Unknown Object (File)
Nov 15 2024, 1:23 PM
Unknown Object (File)
Nov 15 2024, 1:19 PM
Unknown Object (File)
Oct 25 2024, 1:56 PM
Unknown Object (File)
Oct 23 2024, 7:19 AM
Subscribers

Details

Summary

The log1pl() implementation is less accurate than logl(), but does at least
guarantee precision >= the ld80 implementation. Increase the tolerance
to the ld80 equivalent for now.

Depends on D28798

PR: 253984

Test Plan

test passes now

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

ngie accepted this revision.EditedApr 16 2021, 8:11 PM
ngie added subscribers: dim, ngie.

Not my domain of expertise. Maybe someone like @dim or Steve Kargl would have better input 🤷...

Macro surewhynot:

This revision is now accepted and ready to land.Apr 16 2021, 8:11 PM

It's not very likely Steve Kargl can be convinced to create a Phabricator account. :)

That said, while I'm fine with the approach of "fix the test so it works", does anybody have an idea as to why lib/msun/ld128/s_logl.c has worse accuracy than the 80 bit version? AFAIK the whole point of log1p() is better accuracy...

In D29039#668715, @dim wrote:

It's not very likely Steve Kargl can be convinced to create a Phabricator account. :)

That said, while I'm fine with the approach of "fix the test so it works", does anybody have an idea as to why lib/msun/ld128/s_logl.c has worse accuracy than the 80 bit version? AFAIK the whole point of log1p() is better accuracy...

I'm afraid I also don't understand the implementation enough to figure out why this is the case.

This should really be an XFAIL, which I'll do for log1p_accuracy_tests. However, for accuracy_tests that would mean losing coverage for the other function so I'll keep this approach.