This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: Fix ldbl-128ibm expm1l on large arguments (bug 16408)
- From: Andreas Jaeger <aj at suse dot com>
- To: "Joseph S. Myers" <joseph at codesourcery dot com>, libc-alpha at sourceware dot org
- Date: Wed, 08 Jan 2014 08:44:28 +0100
- Subject: Re: Fix ldbl-128ibm expm1l on large arguments (bug 16408)
- Authentication-results: sourceware.org; auth=none
- References: <Pine dot LNX dot 4 dot 64 dot 1401072153200 dot 27342 at digraph dot polyomino dot org dot uk>
On 01/07/2014 10:58 PM, Joseph S. Myers wrote:
> This patch fixes bug 16408, ldbl-128ibm expm1l returning NaN for some
> large arguments.
>
> The basic problem is that the approach of converting the exponent to
> the form n * log(2) + y, where -0.5 <= y <= 0.5, then computing 2^n *
> expm1(y) + (2^n - 1) falls over when 2^n overflows (starting slightly
> before the point where expm1 overflows, when y is negative and n is
> the least integer for which 2^n overflows). The ldbl-128 code, and
> the x86/x86_64 code, make expm1l fall back to expl for large positive
> arguments to avoid this issue. This patch makes the ldbl-128ibm code
> do the same. (The problem appears for the particular argument in the
> testsuite because the ldbl-128ibm code also uses an overflow threshold
> that's for ldbl-128 and is too big for ldbl-128ibm, but the problem
> described applies for large non-overflowing cases as well, although
> during the freeze is not a suitable time for making the expm1 tests
> cover cases close to overflow more thoroughly.)
>
> This leaves some code for large positive arguments in expm1l that is
> now dead. To keep the code for ldbl-128 and ldbl-128ibm similar, and
> to avoid unnecessary changes during the freeze, the patch doesn't
> remove it; instead I propose to file a bug in Bugzilla as a reminder
> that this code (for overflow, including errno setting, and for
> arguments of +Inf) is no longer needed and should be removed from both
> those expm1l implementations.
ok, thanks!
Andreas
--
Andreas Jaeger aj@{suse.com,opensuse.org} Twitter: jaegerandi
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn,Jennifer Guild,Felix Imendörffer,HRB16746 (AG Nürnberg)
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126