RFR: 8334755: Asymptotically faster implementation of square root algorithm [v2]

fabioromano1 duke at openjdk.org
Sat Jun 22 09:08:24 UTC 2024


> I have implemented the Zimmermann's square root algorithm, available in works [here](https://inria.hal.science/inria-00072854/en/) and [here](https://www.researchgate.net/publication/220532560_A_proof_of_GMP_square_root).
> 
> The algorithm is proved to be asymptotically faster than the Newton's Method, even for small numbers. To get an idea of how much the Newton's Method is slow,  consult my article [here](https://arxiv.org/abs/2406.07751), in which I compare Newton's Method with a version of classical square root algorithm that I implemented. After implementing Zimmermann's algorithm, it turns out that it is faster than my algorithm even for small numbers.

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 29 additional commits since the last revision:

 - Inserted author
 - Merge branch 'openjdk:master' into patchSqrt
 - Merge branch 'openjdk:master' into patchSqrt
 - An optimization
 - Merge branch 'patchSqrt' of https://github.com/fabioromano1/jdk into patchSqrt
 - Merge branch 'openjdk:master' into patchSqrt
 - An optimization
 - An optimization
 - Optimized memory usage of square root algorithm
 - An optimization
 - ... and 19 more: https://git.openjdk.org/jdk/compare/4ba48068...ddd6d736

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/19710/files
  - new: https://git.openjdk.org/jdk/pull/19710/files/d95f9e7f..ddd6d736

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=19710&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=19710&range=00-01

  Stats: 18281 lines in 220 files changed: 12473 ins; 4295 del; 1513 mod
  Patch: https://git.openjdk.org/jdk/pull/19710.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/19710/head:pull/19710

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


More information about the core-libs-dev mailing list