[PATCH] Sunbug 7131192: Optimize BigInteger.doubleValue(), floatValue()
lowasser at google.com
Thu Dec 13 23:36:41 UTC 2012
I'm working at Google now, but I'd like to revive this patch as a
contribution from Google. At the moment, what's mainly needed is review
for http://bugs.sun.com/view_bug.do?bug_id=7192954, the fix to
Float.parseFloat's rounding behavior, before we can go anywhere with the
patch to optimize BigInteger.floatValue() and doubleValue().
> Would anyone be able to review that patch so these can start moving
> Louis Wasserman
Java Core Libraries Team @ Google
---------- Forwarded message ----------
> From: Louis Wasserman <wasserman.louis at gmail.com>
> Date: Sat, Jul 14, 2012 at 5:32 AM
> Subject: Re: [PATCH] Sunbug 7131192: Optimize BigInteger.doubleValue(),
> To: Joseph Darcy <joe.darcy at oracle.com>
> Cc: Andrew Haley <aph at redhat.com>, core-libs-dev at openjdk.java.net
> Understood. FYI, testing for this change revealed a bug in
> Float.parseFloat, a patch for which has been separately sent to this
> mailing list under the subject line "[PATCH] Sunbug 6358355: Rounding error
> in Float.parseFloat". (As a result, the BigInteger patch may fail some of
> the provided tests at the moment, but that is truly because the reference
> implementation it's being tested against is faulty.)
> Louis Wasserman
> wasserman.louis at gmail.com
> On Sat, Jul 14, 2012 at 2:20 AM, Joseph Darcy <joe.darcy at oracle.com>wrote:
>> Thanks for the patch Louis.
>> On 7/12/2012 3:21 AM, Andrew Haley wrote:
>>> On 07/12/2012 10:32 AM, Louis Wasserman wrote:
>>>> It was attached to the previous message? I don't know if this list
>>>> with attachments. Alternately, the patch was attached here:
>>>> I'm not sure what you mean by double-rounding bugs, though. It's
>>>> not difficult to actually implement the HALF_EVEN rounding behavior
>>>> with bit twiddling.
>>> Sure, as long as you've thought about it and done it carefully. The
>>> bit twiddling is easy to do, and easy to get wrong.
>>> > From the supplied patch it looks like you've done a good job, but
>>> there was no way to tell without it. I presume the listserv dropped
>>> it on the floor.
>> I've taken a quick look at the patch. The concept for the change is
>> good; the current path of converting to float/double through a string is a
>> simple but very roundabout way to accomplish this task.
>> Unfortunately, I'm saturated with the JDK bug migration  and will
>> continue to be saturated for at least several more weeks so I won't be able
>> to take a more detailed look at the patch for a while. I suspect some more
>> directly test cases will be needed to test tricky rounding situations.
>>  https://blogs.oracle.com/**darcy/entry/moving_monarchs_**dragons<https://blogs.oracle.com/darcy/entry/moving_monarchs_dragons>
More information about the core-libs-dev