RFR: 8341402: BigDecimal's square root optimization [v2]
Raffaello Giulietti
rgiulietti at openjdk.org
Thu Oct 3 09:07:35 UTC 2024
On Thu, 3 Oct 2024 07:55:26 GMT, fabioromano1 <duke at openjdk.org> wrote:
>> Without experimenting a bit, it's hard to tell.
>> Anyway, I believe the current implementation of `stripZerosToMatchScale()` is O(n^2) rather than exponential, because each single division by 10 is linear.
>>
>> But let's focus on `sqrt()` in this PR and leave `stripZerosToMatchScale()` for another time.
>
> @rgiulietti I tried to implement and test stripping zeros algorithm with repeated squares trick, and on my laptop it takes around two seconds for strip one million of zeros. So, I decided to remove the method `stripZerosToEvenScale()`, in order to use only the `stripZerosToMatchScale()` logic.
Nice!
Perhaps it would make sense to have your new implementation of `stripZerosToMatchScale()` in another PR, integrate that one first, and then come back to this PR. For general usage of `BigDecimal`, its more useful to have a faster `stripZerosToMatchScale()` than a faster `sqrt()`, I think.
Let me know if you agree of if you prefer to go ahead with with PR first.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21301#discussion_r1785883833
More information about the core-libs-dev
mailing list