On Fri, 15 Nov 2024 13:22:32 GMT, Raffaello Giulietti <[email protected]>
wrote:
>> fabioromano1 has updated the pull request incrementally with one additional
>> commit since the last revision:
>>
>> Code simplification
>
> src/java.base/share/classes/java/math/BigDecimal.java line 2190:
>
>> 2188: resultScale = strippedScale >> 1;
>> 2189: } else {
>> 2190: working = working.multiply(10L);
>
> While this is correct, there's useless work that is being performed.
>
> After the multiplication by 10, `working` cannot be an exact square, so this
> will fail later at L.2199.
> I wonder if this can be simplified to avoid the `multiply()` and the
> following `sqrtAndRemainder()` when `strippedScale` is odd.
I'm changing the code to take into account this fact.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/21301#discussion_r1843855833