Review Request: BigInteger patch for efficient multiplication and division (#4837946)

Tim Buktu tbuktu at
Sun Mar 10 20:39:43 UTC 2013


I have updated the patch. It now contains Alan Eliasen's fast square()
and pow() implementations.
Special characters have been replaced with ASCII ones.

Also included is a patched MutableBigInteger which uses the fast
division algorithm in BigInteger, and a patched BigDecimal which uses
the fast BigInteger.pow() method. Both changes speed up BigDecimal division.
BigDecimal division is still much slower than BigInteger division
(except BigDecimal.divideAndRound) because it calls doRound(),
setScale(), and bigMultiplyPowerTen() which are pretty slow. Maybe these
methods can be made more efficient.

To view the four patched files (#4 is on one page,
go to ,

or get them individually at

Semi-related: I think there is a bug in
jdk/test/java/math/BigInteger/ and
jdk/test/java/math/BigDecimal/ It prints failures
(with or without my patches) but the overall test doesn't fail.


More information about the core-libs-dev mailing list