NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: port-amd64/45391: pow(3) wrong result for x = 0.0 and y < 0
The following reply was made to PR port-amd64/45391; it has been noted by GNATS.
From: David Holland <dholland-tech%netbsd.org@localhost>
To: Taylor R Campbell <campbell+netbsd-tech-userlevel%mumble.net@localhost>
Cc: David Holland <dholland-tech%netbsd.org@localhost>, gnats-bugs%netbsd.org@localhost,
tech-userlevel%netbsd.org@localhost
Subject: Re: port-amd64/45391: pow(3) wrong result for x = 0.0 and y < 0
Date: Wed, 9 Sep 2015 04:41:53 +0000
On Tue, Sep 08, 2015 at 04:13:33PM +0000, Taylor R Campbell wrote:
> Date: Tue, 8 Sep 2015 16:03:54 +0000
> From: David Holland <dholland-tech%netbsd.org@localhost>
>
> On Tue, Sep 08, 2015 at 08:41:55AM +0000, David Holland wrote:
> > Also, what's pow(+/-0, non-integer) supposed to produce?
>
> Erm, that was supposed to be "negative non-integer"...
>
> IEEE 754-2008, Sec. 9.2.1 `Special values', p. 45:
>
> > For the pow function (integral exponents get special treatment):
> > ...
> > pow(+/-0, y) is +infinity and signals the divideByZero exception for finite y<0 and not an odd integer
What our existing tests want is:
pow(+0.0, -4.0) == +HUGE_VAL
pow(-0.0, -4.0) == +HUGE_VAL
pow(+0.0, -5.0) == +HUGE_VAL
pow(-0.0, -5.0) == -HUGE_VAL
pow(+0.0, -4.5) == (not checked)
pow(-0.0, -4.5) == (not checked)
Before the commit I made last night, these all yield -HUGE_VAL. With
the commit, they all yield +HUGE_VAL. With the additional change I
proposed but didn't commit, the first four are as requested by the
existing tests, and the last two yield +HUGE_VAL.
I guess other than not signaling that's ok... maybe I should commit
that additional change after all. Although it's pretty gross. Or I
could revert the lot until someone has time to look at it more
carefully.
--
David A. Holland
dholland%netbsd.org@localhost
Home |
Main Index |
Thread Index |
Old Index