On Wed, 10 Jan 2024 11:27:53 GMT, Pavel Rappo <pra...@openjdk.org> wrote:
>> Please review this PR to use modern APIs and language features to simplify >> equals, hashCode, and compareTo for BigInteger. If you have any performance >> concerns, please raise them. >> >> This PR is cherry-picked from a bigger, not-yet-published PR, to test the >> waters. That latter PR will be published soon. > > Pavel Rappo has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains 20 commits: > > - Use Integer.compareUnsigned > - Update copyright years and headers > - Merge branch 'master' into 8310813 > - Merge branch 'master' into 8310813 > - Merge branch 'master' into 8310813 > - Merge branch 'master' into 8310813 > - Merge branch 'master' into 8310813 > - Fix bugs in Shared.createSingle > - Merge branch 'master' into 8310813 > - Group params coarser (suggested by @cl4es) > > - Splits 20 params into 3 groups: (S)mall, (M)edium and (L)arge. > Every testXYZ method invokes M operations, where M is the maximum > number of elements in a group. Shorter groups are cyclically padded. > - Uses the org.openjdk.jmh.infra.Blackhole API and increases > benchmark time. > - Fixes a bug in Shared that precluded 0 from being in a pair. > - ... and 10 more: https://git.openjdk.org/jdk/compare/bc05893f...08e6adca src/java.base/share/classes/java/math/BigInteger.java line 3998: > 3996: int i = ArraysSupport.mismatch(m1, m2, len1); > 3997: if (i != -1) > 3998: return Integer.compareUnsigned(m1[i], m2[i]) < 0 ? -1 : 1; Just an observation. The (Java and intrinsic) implementation of Integer.compareUnsigned already returns -1, 0, 1. Returning `Integer.compareUnsigned(m1[i], m2[i])` would yield the same result without the tertiary expression. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14630#discussion_r1447488470