Hi,

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 BigIntegerTest.java) on one page,
go to

https://gist.github.com/tbuktu/1576025 ,

or get them individually at

https://gist.github.com/tbuktu/1576025/raw/96e9dfd9261862223aa9ff81618f1d85045e85a5/BigInteger.java
https://gist.github.com/tbuktu/1576025/raw/447db955ef74b065b03b0b45abd443cea5d7b2c6/MutableBigInteger.java
https://gist.github.com/tbuktu/1576025/raw/6863a38032835b48b73cbce5aa833680c881557f/BigDecimal.java
https://gist.github.com/tbuktu/1576025/raw/11977be7d001e093baa915b4370f326e30218eec/BigIntegerTest.java

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

Tim

Reply via email to