From: Juho Snellman <jsnell@ik...>  20040810 12:30:24

A couple of other bignum changes: * Lift the bignumtruncate helpers into labels, since there was a lot of (unsignedbyte 32) boxing going on. This also allows replacing the special variables *truncatex* and *truncatey* with lexicals. This gives a 50% improvement on some benchmarks. * Implement Kenneth Weber's Accelerated Integer GCD algorithm. This gives about 40% improvement on other benchmarks. This is somewhat messy, especially since the calculations must be done with mutable bignums for performance. Depends on modular nonconstant left shifts. Benchmark Reference 0.8.13.32 0.8.13.32js1  BIGNUM/ELEM1001000 [ 1.740.00] 1.000.0018 0.730.0036 BIGNUM/ELEM1000100 [ 1.280.00] 1.000.0018 0.460.0005 BIGNUM/ELEM100001 [ 1.480.01] 1.000.0044 0.540.0022 BIGNUM/PARI10010 [ 0.270.00] 1.000.0033 0.690.0038 BIGNUM/PARI2005 [ 0.300.00] 1.000.0048 0.540.0033 PIDECIMAL/SMALL [ 0.430.00] 1.000.0043 0.520.0016 PIATAN [ 2.510.00] 1.000.0012 0.780.0043 PIRATIOS [ 3.230.01] 1.000.0026 0.870.0028  Juho Snellman 