Revision history for Math::BigInt::Pari

2011-02-26 v1.16 pjacklam (6153 tests)

2011-02-10 v1.15 pjacklam (6151 tests)

2010-09-10 v1.14 rafl 5716 tests

2007-07-01 v1.13 Tels 5704 tests

00 len 2: 3s (3.11 usr + 0.00 sys = 3.11 CPU) @ 4714/s (n=14661) 01 len 2 big: 3s (3.00 usr + 0.01 sys = 3.01 CPU) @ 532/s (n=1604)

  02 len 3:     3s (3.19 usr + 0.01 sys = 3.20 CPU) @   728/s (n=2332)
  03 len 7:     3s (3.01 usr + 0.16 sys = 3.17 CPU) @  1960/s (n=6216)
  04 len 8:     3s (3.21 usr + 0.00 sys = 3.21 CPU) @  2247/s (n=7215)

05 len 11: 3s (3.18 usr + 0.00 sys = 3.18 CPU) @ 2862/s (n=9104) 06 len 14: 3s (3.23 usr + 0.00 sys = 3.23 CPU) @ 3620/s (n=11695) 06 len 20: 3s (3.25 usr + 0.00 sys = 3.25 CPU) @ 4882/s (n=15868) 0a len 3 big: 3s (3.16 usr + 0.00 sys = 3.16 CPU) @ 168/s (n=534)

Using Math::BigInt v1.87 and Math::BigInt::Pari v1.13

00 len 2: 2s (3.24 usr + 0.00 sys = 3.24 CPU) @ 13064/s (n=42328) 01 len 2 big: 3s (3.17 usr + 0.00 sys = 3.17 CPU) @ 4853/s (n=15387)

  02 len 3:     3s (3.23 usr + 0.00 sys = 3.23 CPU) @  4831/s (n=15607)
  03 len 7:     3s (3.24 usr + 0.00 sys = 3.24 CPU) @  4813/s (n=15597)
  04 len 8:     3s (3.22 usr + 0.00 sys = 3.22 CPU) @  4778/s (n=15387)

05 len 11: 3s (3.02 usr + 0.16 sys = 3.18 CPU) @ 4754/s (n=15119) 06 len 14: 3s (3.15 usr + 0.00 sys = 3.15 CPU) @ 4740/s (n=14934) 06 len 20: 3s (3.24 usr + 0.00 sys = 3.24 CPU) @ 4749/s (n=15387) 0a len 3 big: 3s (3.22 usr + 0.00 sys = 3.22 CPU) @ 877/s (n=2825)

For reference:

Using Math::BigInt v1.87 and Math::BigInt::GMP 1.22

00 len 2: 3s (3.14 usr + 0.00 sys = 3.14 CPU) @ 16853/s (n=52920) 01 len 2 big: 3s (3.13 usr + 0.00 sys = 3.13 CPU) @ 16391/s (n=51306)

  02 len 3:     3s (3.17 usr + 0.03 sys = 3.20 CPU) @ 16036/s (n=51316)
  03 len 7:     3s (2.97 usr + 0.13 sys = 3.10 CPU) @ 16063/s (n=49797)
  04 len 8:     3s (3.10 usr + 0.01 sys = 3.11 CPU) @ 16011/s (n=49797)

05 len 11: 3s (3.14 usr + 0.00 sys = 3.14 CPU) @ 15858/s (n=49797) 06 len 14: 3s (3.14 usr + 0.01 sys = 3.15 CPU) @ 15808/s (n=49797) 06 len 20: 3s (3.15 usr + 0.01 sys = 3.16 CPU) @ 15761/s (n=49807) 0a len 3 big: 4s (3.20 usr + 0.04 sys = 3.24 CPU) @ 15838/s (n=51316)

2007-04-17 v1.12 Tels 5258 tests

2005-01-02 v1.11 Tels 5055 tests

2004-01-07 v1.10 Tels

2002-07-07 v1.09 Tels

2002-03-23 v1.08 Tels

2002-02-21 v1.07 Tels

2002-02-10 v1.06 Tels

        #!/usr/bin/perl -w
        use lib 'lib';
        use Math::BigInt lib => 'Pari';
        use Benchmark;
        my $c = 20000;
        my $x = Math::BigInt->new(1); my $z = $x->copy()->blsft($c);
        my $x1 = Math::BigInt->new(1); my $z1 = $x->copy()->blsft($c*10);
        timethese ( -3, {
          right_1_10 => sub { $x->brsft(1,10); },
          left_1_10 => sub { $z->blsft(1,10); },
          right_10_10 => sub { $x1->blsft(10,10); },
          left_10_10 => sub { $z1->brsft(10,10); }, } );

        Results (operations per second) on a 1Ghz Athlon:

                        v1.05   v1.06   Factor
          -------------------------------------
         left_10_10:     1990    6000   3.0
          left_1_10:     2280    5150   2.2
        right_10_10:     1130    1560   1.4
         right_1_10:     2570    6433   2.5

2001-11-11 v1.05 Tels

2001-11-01 v1.04 Tels

        #!/usr/bin/perl -w
        use lib 'lib';
        use Math::BigInt lib => 'Pari';
        use Benchmark;
        my $c = 20000;
        my $x = Math::BigInt->new(1); my $z = $x->copy()->blsft($c);
        my $x1 = Math::BigInt->new(1); my $z1 = $x->copy()->blsft($c*10);
        timethese ( $c, {
          right_1 => sub { $x->brsft(1,2); },
          left_1 => sub { $z->blsft(1,2); },
          right_10 => sub { $x1->blsft(10,2); },
          left_10 => sub { $z1->brsft(10,2); }, } );

        Results (operations per second) on a 1Ghz Athlon:

                        v1.03   v1.04   Factor
          -------------------------------------
            left_1:      2577    6450   2.5
           left_10:       881    3086   3.5
           right_1:      2928    6990   2.4
          right_10:      2020    5465   2.7

1.03 2001.09.02 btrott

1.02 2001.08.05 btrott

1.01 2001.07.14 btrott

1.00 2001.07.11 btrott