This is an automated email from the git hooks/post-receive script. ppm-guest pushed a commit to annotated tag v0.14 in repository libmath-prime-util-perl.
commit d719bbe594289b4a186d5f4c31f8bfaa752dab3b Author: Dana Jacobsen <d...@acm.org> Date: Thu Nov 29 15:56:34 2012 -0800 Update for release, and standardize infinity processing --- Changes | 2 +- README | 2 +- lib/Math/Prime/Util.pm | 29 +++++++++++++++-------------- lib/Math/Prime/Util/MemFree.pm | 4 ++-- lib/Math/Prime/Util/PP.pm | 20 ++++++++++++-------- lib/Math/Prime/Util/PrimeArray.pm | 4 ++-- 6 files changed, 33 insertions(+), 28 deletions(-) diff --git a/Changes b/Changes index 390ef11..f061020 100644 --- a/Changes +++ b/Changes @@ -1,6 +1,6 @@ Revision history for Perl extension Math::Prime::Util. -0.14 ?? November 2012 +0.14 29 November 2012 - Compilation and test issues: Fix compilation on NetBSD diff --git a/README b/README index f6bdd86..c529e8a 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -Math::Prime::Util version 0.13 +Math::Prime::Util version 0.14 A set of utilities related to prime numbers. These include multiple sieving methods, is_prime, prime_count, nth_prime, approximations and bounds for diff --git a/lib/Math/Prime/Util.pm b/lib/Math/Prime/Util.pm index f8fe583..d701af4 100644 --- a/lib/Math/Prime/Util.pm +++ b/lib/Math/Prime/Util.pm @@ -5,7 +5,7 @@ use Carp qw/croak confess carp/; BEGIN { $Math::Prime::Util::AUTHORITY = 'cpan:DANAJ'; - $Math::Prime::Util::VERSION = '0.13'; + $Math::Prime::Util::VERSION = '0.14'; } # parent is cleaner, and in the Perl 5.10.1 / 5.12.0 core, but not earlier. @@ -117,6 +117,11 @@ $_Config{'verbose'} = 0; my $_XS_MAXVAL = $_Config{'xs'} ? $_Config{'maxparam'} : -1; my $_HAVE_GMP = $_Config{'gmp'}; +# 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; + # Notes on how we're dealing with big integers: # # 1) if (ref($n) eq 'Math::BigInt') @@ -146,7 +151,7 @@ sub prime_get_config { $config{'precalc_to'} = ($_Config{'xs'}) ? _get_prime_cache_size() - : Math::Prime::Util::PP::_get_prime_cache_size; + : Math::Prime::Util::PP::_get_prime_cache_size(); return \%config; } @@ -1429,9 +1434,9 @@ sub RiemannR { sub ExponentialIntegral { my($n) = @_; - return 0+'-inf' if $n == 0; - return 0 if $n == (0 + '-inf'); - return 0+'inf' if $n == (0 + 'inf'); + return $_Neg_Infinity if $n == 0; + return 0 if $n == $_Neg_Infinity; + return $_Infinity if $n == $_Infinity; return Math::Prime::Util::PP::ExponentialIntegral($n) if defined $bignum::VERSION || ref($n) eq 'Math::BigFloat'; return Math::Prime::Util::PP::ExponentialIntegral($n) if !$_Config{'xs'}; @@ -1440,20 +1445,16 @@ sub ExponentialIntegral { sub LogarithmicIntegral { my($n) = @_; - return 0 if $n == 0; - return 0+'-inf' if $n == 1; - return 0+'inf' if $n == (0 + 'inf'); + return 0 if $n == 0; + return $_Neg_Infinity if $n == 1; + return $_Infinity if $n == $_Infinity; croak("Invalid input to LogarithmicIntegral: x must be >= 0") if $n <= 0; if ( defined $bignum::VERSION || ref($n) eq 'Math::BigFloat' ) { return Math::BigFloat->binf('-') if $n == 1; return Math::BigFloat->new('1.045163780117492784844588889194613136522615578151201575832909144075013205210359530172717405626383356306') if $n == 2; } else { - if ($n == 1) { - my $neg_infinity = 0+'-inf'; - return (-9)**9**9 if $neg_infinity == 0; - return $neg_infinity; - } + return $_Neg_Infinity if $n == 1; return 1.045163780117492784844588889194613136522615578151 if $n == 2; } return Math::Prime::Util::PP::LogarithmicIntegral($n) @@ -1484,7 +1485,7 @@ Math::Prime::Util - Utilities related to prime numbers, including fast sieves an =head1 VERSION -Version 0.13 +Version 0.14 =head1 SYNOPSIS diff --git a/lib/Math/Prime/Util/MemFree.pm b/lib/Math/Prime/Util/MemFree.pm index 3d37386..f7465a6 100644 --- a/lib/Math/Prime/Util/MemFree.pm +++ b/lib/Math/Prime/Util/MemFree.pm @@ -4,7 +4,7 @@ use warnings; BEGIN { $Math::Prime::Util::MemFree::AUTHORITY = 'cpan:DANAJ'; - $Math::Prime::Util::MemFree::VERSION = '0.12'; + $Math::Prime::Util::MemFree::VERSION = '0.14'; } use base qw( Exporter ); @@ -44,7 +44,7 @@ Math::Prime::Util::MemFree - An auto-free object for Math::Prime::Util =head1 VERSION -Version 0.12 +Version 0.14 =head1 SYNOPSIS diff --git a/lib/Math/Prime/Util/PP.pm b/lib/Math/Prime/Util/PP.pm index ba1f96d..c105a13 100644 --- a/lib/Math/Prime/Util/PP.pm +++ b/lib/Math/Prime/Util/PP.pm @@ -5,7 +5,7 @@ use Carp qw/carp croak confess/; BEGIN { $Math::Prime::Util::PP::AUTHORITY = 'cpan:DANAJ'; - $Math::Prime::Util::PP::VERSION = '0.13'; + $Math::Prime::Util::PP::VERSION = '0.14'; } # The Pure Perl versions of all the Math::Prime::Util routines. @@ -35,6 +35,10 @@ my $_half_word = (~0 == 18446744073709551615) ? 4294967296 : # 64-bit (~0 == 4294967295) ? 65536 : # 32-bit (~0 == -1) ? 1000**10 : # bignum 0 ; # No idea +# 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; my $_precalc_size = 0; sub prime_precalc { @@ -1429,9 +1433,9 @@ my $_const_li2 = 1.045163780117492784844588889194613136522615578151; sub ExponentialIntegral { my($x, $tol) = @_; - return 0+'-inf' if $x == 0; - return 0 if $x == (0 + '-inf'); - return 0+'inf' if $x == (0 + 'inf'); + return $_Neg_Infinity if $x == 0; + return 0 if $x == $_Neg_Infinity; + return $_Infinity if $x == $_Infinity; $tol = 1e-16 unless defined $tol; my $sum = 0.0; my($y, $t); @@ -1507,9 +1511,9 @@ sub ExponentialIntegral { sub LogarithmicIntegral { my($x) = @_; - return 0 if $x == 0; - return 0+'-inf' if $x == 1; - return 0+'inf' if $x == (0 + 'inf'); + return 0 if $x == 0; + return $_Neg_Infinity if $x == 1; + return $_Infinity if $x == $_Infinity; return $_const_li2 if $x == 2; croak "Invalid input to LogarithmicIntegral: x must be > 0" if $x <= 0; @@ -1682,7 +1686,7 @@ Math::Prime::Util::PP - Pure Perl version of Math::Prime::Util =head1 VERSION -Version 0.13 +Version 0.14 =head1 SYNOPSIS diff --git a/lib/Math/Prime/Util/PrimeArray.pm b/lib/Math/Prime/Util/PrimeArray.pm index f5e7395..a8002ed 100644 --- a/lib/Math/Prime/Util/PrimeArray.pm +++ b/lib/Math/Prime/Util/PrimeArray.pm @@ -4,7 +4,7 @@ use warnings; BEGIN { $Math::Prime::Util::PrimeArray::AUTHORITY = 'cpan:DANAJ'; - $Math::Prime::Util::PrimeArray::VERSION = '0.12'; + $Math::Prime::Util::PrimeArray::VERSION = '0.14'; } # parent is cleaner, and in the Perl 5.10.1 / 5.12.0 core, but not earlier. @@ -109,7 +109,7 @@ Math::Prime::Util::PrimeArray - A tied array for primes =head1 VERSION -Version 0.12 +Version 0.14 =head1 SYNOPSIS -- 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