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. ------------- Commit messages: - 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 - Update comment - Update MutableBigInteger.java - ... and 17 more: https://git.openjdk.org/jdk/compare/50bed6c6...d95f9e7f Changes: https://git.openjdk.org/jdk/pull/19710/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=19710&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8334755 Stats: 182 lines in 2 files changed: 172 ins; 4 del; 6 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