RFR: 8334755: Asymptotically faster implementation of square root algorithm [v28]
Raffaello Giulietti
rgiulietti at openjdk.org
Wed Jul 17 15:13:56 UTC 2024
On Wed, 17 Jul 2024 15:08:22 GMT, Raffaello Giulietti <rgiulietti at openjdk.org> wrote:
>> @rgiulietti This is so strange... anyway, I tried also `long x = n * n`, `long s = Math.round(Math.sqrt(x >= 0 ? x : x + 0x1p64))` with the test `s < n`, which I think it's more mathematically natural, and also this never fails for perfect squares.
>
> Also, this avoids a test
>
> if (Long.compareUnsigned(x, s * s - 1) <= 0) { // benign over- and underflows
> s--;
> }
Sorry, disregard the above as it doesn't work for x = 0.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19710#discussion_r1681234957
More information about the core-libs-dev
mailing list