RFR: 8077587: BigInteger Roots [v18]

fabioromano1 duke at openjdk.org
Sat Apr 19 19:23:26 UTC 2025


> This PR implements nth root computation for `BigInteger`s using Newton method and optimizes `BigInteger.pow(int)` method.
> [Here is a proof of convergence of the recurrence used.](https://github.com/user-attachments/files/19785045/nth_root_newton_proof_integers.pdf)

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/29bccfda...524f195e

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/24690/files
  - new: https://git.openjdk.org/jdk/pull/24690/files/b427091f..524f195e

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=24690&range=17
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=24690&range=16-17

  Stats: 11487 lines in 264 files changed: 9970 ins; 920 del; 597 mod
  Patch: https://git.openjdk.org/jdk/pull/24690.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/24690/head:pull/24690

PR: https://git.openjdk.org/jdk/pull/24690


More information about the core-libs-dev mailing list