
What's new in this version of Math::BigInt::Pari:

v1.11:
 * require Math::BigInt v1.74 and Math::Pari v2.010602
 * testsuite from MBI v1.74
 * support API from BigInt v1.70 and better
 * add _is_two, _is_ten, _two, _ten, _log_int, _zeros, _sqrt, _root() etc

Math::BigInt::Pari could use some more optimizations for _sqrt(), _root()
and _log_int() - especially native functions would help a lot as seen
from the benchmarks below when compared to Math::BigInt::GMP. 

However, the new sreamlined API from Math::BigInt v1.70 plus the more
optimized Math::BigFloat together with Math::BigInt::Pari v1.11 already
result in quite a speed-up: 

###########################################################################

The last usable combinations was:

Math::BigInt v1.69 using Math::BigInt::Pari v1.10


        2 ** 144:  6s ( 5.29 usr +  0.01 sys =  5.30 CPU) @ 13148/s (n=69688)
           2 + 2:  5s ( 5.18 usr +  0.02 sys =  5.20 CPU) @ 25126/s (n=130656)
       2.0 + 2.0:  6s ( 5.32 usr +  0.01 sys =  5.33 CPU) @  5160/s (n=27504)
      bsqrt(144):  5s ( 5.34 usr +  0.02 sys =  5.36 CPU) @  1623/s (n=8701)
 bsqrt(2 ** 144):  6s ( 5.25 usr +  0.02 sys =  5.27 CPU) @   742/s (n=3912)
  flog(2 ** 144):  6s ( 5.27 usr +  0.02 sys =  5.29 CPU) @    11/s (n=59)
      fsqrt(144):  5s ( 5.33 usr +  0.03 sys =  5.36 CPU) @   553/s (n=2965)
 fsqrt(2 ** 144):  5s ( 5.15 usr +  0.02 sys =  5.17 CPU) @   842/s (n=4355)
   log(2 ** 144):  6s ( 5.26 usr +  0.01 sys =  5.27 CPU) @  2171/s (n=11446)

Newest combination:

Math::BigInt v1.74 using Math::BigInt::Pari v1.11
        2 ** 144:  5s ( 5.30 usr +  0.01 sys =  5.31 CPU) @ 13628/s (n=72369)
           2 + 2:  6s ( 5.21 usr +  0.01 sys =  5.22 CPU) @ 28087/s (n=146618)
       2.0 + 2.0:  5s ( 5.25 usr +  0.01 sys =  5.26 CPU) @ 11039/s (n=58070)
      bsqrt(144):  6s ( 5.14 usr +  0.01 sys =  5.15 CPU) @  6340/s (n=32656)
 bsqrt(2 ** 144):  5s ( 5.33 usr +  0.01 sys =  5.34 CPU) @   815/s (n=4355)
  flog(2 ** 144):  5s ( 5.09 usr +  0.02 sys =  5.11 CPU) @    26/s (n=135)
      fsqrt(144):  5s ( 5.28 usr +  0.01 sys =  5.29 CPU) @   685/s (n=3626)
 fsqrt(2 ** 144):  6s ( 5.35 usr +  0.01 sys =  5.36 CPU) @  2759/s (n=14789)
   log(2 ** 144):  5s ( 5.21 usr +  0.01 sys =  5.22 CPU) @  8776/s (n=45815)

For reference:

Math::BigInt v1.74 using Math::BigInt::GMP v1.17
        2 ** 144:  6s ( 5.26 usr +  0.01 sys =  5.27 CPU) @ 14435/s (n=76075)
           2 + 2:  5s ( 5.31 usr +  0.01 sys =  5.32 CPU) @ 30798/s (n=163849)
       2.0 + 2.0:  6s ( 5.20 usr +  0.01 sys =  5.21 CPU) @ 12311/s (n=64145)
      bsqrt(144):  5s ( 5.32 usr +  0.01 sys =  5.33 CPU) @ 37029/s (n=197369)
 bsqrt(2 ** 144):  4s ( 5.23 usr +  0.02 sys =  5.25 CPU) @ 35543/s (n=186604)
  flog(2 ** 144):  5s ( 5.21 usr +  0.02 sys =  5.23 CPU) @    36/s (n=191)
      fsqrt(144):  6s ( 5.24 usr +  0.02 sys =  5.26 CPU) @  5060/s (n=26616)
 fsqrt(2 ** 144):  5s ( 5.18 usr +  0.01 sys =  5.19 CPU) @  5128/s (n=26616)
   log(2 ** 144):  5s ( 5.23 usr +  0.01 sys =  5.24 CPU) @ 11733/s (n=61483)

Math::BigInt v1.74 using Math::BigInt::Calc v0.44
        2 ** 144:  5s ( 5.23 usr +  0.01 sys =  5.24 CPU) @ 6412/s (n=33600)
           2 + 2:  6s ( 5.31 usr +  0.02 sys =  5.33 CPU) @ 31332/s (n=167000)
       2.0 + 2.0:  5s ( 5.22 usr +  0.01 sys =  5.23 CPU) @ 11977/s (n=62643)
      bsqrt(144):  6s ( 5.21 usr +  0.01 sys =  5.22 CPU) @ 41589/s (n=217097)
 bsqrt(2 ** 144):  5s ( 5.27 usr +  0.01 sys =  5.28 CPU) @  1064/s (n=5618)
  flog(2 ** 144):  5s ( 5.29 usr +  0.02 sys =  5.31 CPU) @    18/s (n=99)
      fsqrt(144):  6s ( 5.26 usr +  0.01 sys =  5.27 CPU) @   728/s (n=3840)
 fsqrt(2 ** 144):  5s ( 5.20 usr +  0.02 sys =  5.22 CPU) @  5173/s (n=27004)
   log(2 ** 144):  6s ( 5.28 usr +  0.01 sys =  5.29 CPU) @  8083/s (n=42763)

Have fun,

Tels
