This is an automated email from the git hooks/post-receive script.

ppm-guest pushed a commit to annotated tag v0.36
in repository libmath-prime-util-perl.

commit c0c2eb9d5626411e6c457e343e1dde9f37a35a04
Author: Dana Jacobsen <d...@acm.org>
Date:   Wed Jan 8 02:34:20 2014 -0800

    Adjust use of constant to allow backward compatibility
---
 lib/Math/Prime/Util.pm    | 24 ++++++++++------------
 lib/Math/Prime/Util/PP.pm | 52 ++++++++++++++++++++---------------------------
 2 files changed, 33 insertions(+), 43 deletions(-)

diff --git a/lib/Math/Prime/Util.pm b/lib/Math/Prime/Util.pm
index 330c5fb..a35e36a 100644
--- a/lib/Math/Prime/Util.pm
+++ b/lib/Math/Prime/Util.pm
@@ -64,18 +64,17 @@ sub _import_nobigint {
 
 BEGIN {
 
-  use Config;
-  use constant { OLD_PERL_VERSION =>  ($] < 5.008),
-                 MPU_MAXBITS      =>  8 * $Config{uvsize},
-                 MPU_64BIT        =>  ($Config{uvsize} == 8),
-                 MPU_32BIT        =>  ($Config{uvsize} == 4),
-                 MPU_MAXPARAM     =>  ($Config{uvsize} == 4) ? 4294967295 : 
18446744073709551615,
-                 MPU_MAXDIGITS    =>  ($Config{uvsize} == 4) ? 10 : 20,
-                 MPU_MAXPRIME     =>  ($Config{uvsize} == 4) ? 4294967291 : 
18446744073709551557,
-                 MPU_MAXPRIMEIDX  =>  ($Config{uvsize} == 4) ?  203280221 :   
425656284035217743,
-                 UVPACKLET        =>  ($Config{uvsize} == 8 ? 'Q' : 'L'),
-               };
-  no Config;
+  # Separate lines to keep compatible with default from 5.6.2.
+  # We could alternately use Config's $Config{uvsize} for MAXBITS
+  use constant OLD_PERL_VERSION=> $] < 5.008;
+  use constant MPU_MAXBITS     => (~0 == 4294967295) ? 32 : 64;
+  use constant MPU_64BIT       => MPU_MAXBITS == 64;
+  use constant MPU_32BIT       => MPU_MAXBITS == 32;
+  use constant MPU_MAXPARAM    => MPU_32BIT ? 4294967295 : 
18446744073709551615;
+  use constant MPU_MAXDIGITS   => MPU_32BIT ?         10 : 20;
+  use constant MPU_MAXPRIME    => MPU_32BIT ? 4294967291 : 
18446744073709551557;
+  use constant MPU_MAXPRIMEIDX => MPU_32BIT ?  203280221 :   
425656284035217743;
+  use constant UVPACKLET       => MPU_32BIT ?        'L' : 'Q';
 
   # Load PP code.  Nothing exported.
   require Math::Prime::Util::PP;  Math::Prime::Util::PP->import();
@@ -155,7 +154,6 @@ BEGIN {
                                   Math::Prime::Util::GMP->import();
                                   1; };
   }
-
 }
 END {
   _prime_memfreeall;
diff --git a/lib/Math/Prime/Util/PP.pm b/lib/Math/Prime/Util/PP.pm
index c75817e..9068e37 100644
--- a/lib/Math/Prime/Util/PP.pm
+++ b/lib/Math/Prime/Util/PP.pm
@@ -18,25 +18,20 @@ BEGIN {
 # code for more detailed comments, including references to papers.
 
 BEGIN {
-  use Config;
-  use constant { OLD_PERL_VERSION =>  ($] < 5.008),
-                 MPU_MAXBITS      =>  8 * $Config{uvsize},
-                 MPU_64BIT        =>  ($Config{uvsize} == 8),
-                 MPU_32BIT        =>  ($Config{uvsize} == 4),
-                 #MPU_MAXPARAM     =>  ($Config{uvsize} == 4) ? 4294967295 : 
18446744073709551615,
-                 #MPU_MAXDIGITS    =>  ($Config{uvsize} == 4) ? 10 : 20,
-                 #MPU_MAXPRIME     =>  ($Config{uvsize} == 4) ? 4294967291 : 
18446744073709551557,
-                 MPU_MAXPRIMEIDX  =>  ($Config{uvsize} == 4) ?  203280221 :   
425656284035217743,
-                 MPU_HALFWORD     =>  ($Config{uvsize} == 4) ? 65536 : ($] < 
5.008) ? 33554432 : 4294967296,
-                 UVPACKLET        =>  ($Config{uvsize} == 8 ? 'Q' : 'L'),
-               };
-  no Config;
-}
-
-# Infinity in Perl is rather O/S specific.
-our $_Infinity = 0+'inf';
-$_Infinity = 20**20**20 if 65535 > $_Infinity;   # E.g. Windows
-our $_Neg_Infinity = -$_Infinity;
+  use constant OLD_PERL_VERSION=> $] < 5.008;
+  use constant MPU_MAXBITS     => (~0 == 4294967295) ? 32 : 64;
+  use constant MPU_64BIT       => MPU_MAXBITS == 64;
+  use constant MPU_32BIT       => MPU_MAXBITS == 32;
+ #use constant MPU_MAXPARAM    => MPU_32BIT ? 4294967295 : 
18446744073709551615;
+ #use constant MPU_MAXDIGITS   => MPU_32BIT ? 10 : 20;
+ #use constant MPU_MAXPRIME    => MPU_32BIT ? 4294967291 : 
18446744073709551557;
+  use constant MPU_MAXPRIMEIDX => MPU_32BIT ?  203280221 :  425656284035217743;
+  use constant MPU_HALFWORD    => MPU_32BIT ? 65536 : OLD_PERL_VERSION ? 
33554432 : 4294967296;
+  use constant UVPACKLET       => MPU_32BIT ? 'L' : 'Q';
+  use constant MPU_INFINITY    => (65535 > 0+'inf') ? 20**20**20 : 0+'inf';
+  use constant CONST_EULER     => 
'0.577215664901532860606512090082402431042159335939923598805767';
+  use constant CONST_LI2       => 
'1.04516378011749278484458888919461313652261557815120157583290914407501320521';
+}
 
 {
   my $_have_MPFR = -1;
@@ -2385,14 +2380,11 @@ sub ecm_factor {
 
 
 
-my $_const_euler = 0.57721566490153286060651209008240243104215933593992;
-my $_const_li2 = 1.045163780117492784844588889194613136522615578151;
-
 sub ExponentialIntegral {
   my($x) = @_;
-  return $_Neg_Infinity if $x == 0;
-  return 0              if $x == $_Neg_Infinity;
-  return $_Infinity     if $x == $_Infinity;
+  return - MPU_INFINITY if $x == 0;
+  return 0              if $x == - MPU_INFINITY;
+  return MPU_INFINITY   if $x == MPU_INFINITY;
 
   # Gotcha -- MPFR decided to make negative inputs return NaN.  Grrr.
   if ($x > 0 && _MPFR_available()) {
@@ -2459,7 +2451,7 @@ sub ExponentialIntegral {
   } elsif ($x < -log($tol)) {
     # Convergent series
     my $fact_n = 1;
-    $y = $_const_euler-$c; $t = $sum+$y; $c = ($t-$sum)-$y; $sum = $t;
+    $y = CONST_EULER-$c; $t = $sum+$y; $c = ($t-$sum)-$y; $sum = $t;
     $y = log($x)-$c; $t = $sum+$y; $c = ($t-$sum)-$y; $sum = $t;
     for my $n (1 .. 200) {
       $fact_n *= $x/$n;
@@ -2492,8 +2484,8 @@ sub ExponentialIntegral {
 sub LogarithmicIntegral {
   my($x) = @_;
   return 0              if $x == 0;
-  return $_Neg_Infinity if $x == 1;
-  return $_Infinity     if $x == $_Infinity;
+  return - MPU_INFINITY if $x == 1;
+  return MPU_INFINITY   if $x == MPU_INFINITY;
   croak "Invalid input to LogarithmicIntegral:  x must be > 0" if $x <= 0;
 
   # Remember MPFR eint doesn't handle negative inputs
@@ -2521,7 +2513,7 @@ sub LogarithmicIntegral {
   }
 
   if ($x == 2) {
-    my $li2const = (ref($x) eq 'Math::BigFloat') ? 
Math::BigFloat->new('1.04516378011749278484458888919461313652261557815120157583290914407501320521')
 : $_const_li2;
+    my $li2const = (ref($x) eq 'Math::BigFloat') ? 
Math::BigFloat->new(CONST_LI2) : 0.0+CONST_LI2;
     return $li2const;
   }
 
@@ -2566,7 +2558,7 @@ sub LogarithmicIntegral {
       $sum += $term;
       last if $term < $tol;
     }
-    my $eulerconst = (ref($x) eq 'Math::BigFloat') ? 
Math::BigFloat->new('0.577215664901532860606512090082402431042159335939923598805767')
 : $_const_euler;
+    my $eulerconst = (ref($x) eq 'Math::BigFloat') ? 
Math::BigFloat->new(CONST_EULER) : 0.0+CONST_EULER;
     my $val = $eulerconst + log($logx) + $sum;
     return $val;
   }

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-perl/packages/libmath-prime-util-perl.git

_______________________________________________
Pkg-perl-cvs-commits mailing list
Pkg-perl-cvs-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-perl-cvs-commits

Reply via email to