[PATCH] Sunbug 7131192: Optimize BigInteger.doubleValue(), floatValue()
Louis Wasserman
lowasser at google.com
Thu Dec 13 23:36:41 UTC 2012
Hi,
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
forward?
Thanks,
> Louis Wasserman
Java Core Libraries Team @ Google
guava-libraries.googlecode.com
---------- 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(),
> floatValue()
> 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
> http://profiles.google.com/wasserman.louis
>
>
> On Sat, Jul 14, 2012 at 2:20 AM, Joseph Darcy <joe.darcy at oracle.com>wrote:
>
>> Hello,
>>
>> 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
>>>> works
>>>> with attachments. Alternately, the patch was attached here:
>>>> https://bugs.openjdk.java.net/**show_bug.cgi?id=100222<https://bugs.openjdk.java.net/show_bug.cgi?id=100222>
>>>>
>>>> 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.
>>>
>>> Andrew.
>>>
>>
>> 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 [1] 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.
>>
>> Thanks,
>>
>> -Joe
>>
>> [1] https://blogs.oracle.com/**darcy/entry/moving_monarchs_**dragons<https://blogs.oracle.com/darcy/entry/moving_monarchs_dragons>
>>
>
>
>
--
Louis Wasserman
More information about the core-libs-dev
mailing list