On Sun, 20 Apr 2025 05:12:19 GMT, Chen Liang <li...@openjdk.org> wrote:
>> fabioromano1 has updated the pull request with a new target base due to a >> merge or a rebase. The incremental webrev excludes the unrelated changes >> brought in by the merge/rebase. The pull request contains 21 additional >> commits since the last revision: >> >> - Merge branch 'openjdk:master' into BigInteger-nth-root >> - Format code >> - Format code >> - An optimization >> - An optimization >> - Extend use cases of MutableBigInteger.valueOf(double) >> - BigIntegers nth root's initial estimate optimization >> - An optimization >> - Memory usage optimization >> - Correct left shift if shift is zero >> - ... and 11 more: https://git.openjdk.org/jdk/compare/d7448f7e...524f195e > > src/java.base/share/classes/java/math/BigInteger.java line 2669: > >> 2667: // Perform exponentiation using repeated squaring trick >> 2668: for (int expLen = Integer.SIZE - expZeros; expLen > 0; >> expLen--) { >> 2669: answer = answer.multiply(answer); > > Is `answer.multiply(answer)` faster than `answer.square()`? It should be, because `multiply(BigInteger)` checks the size of the argument in order to call `square()` when it is more convenient. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/24690#discussion_r2052102817