summaryrefslogtreecommitdiff
path: root/math
diff options
context:
space:
mode:
authorwen <wen>2013-07-14 06:11:50 +0000
committerwen <wen>2013-07-14 06:11:50 +0000
commit930d2ba9e23266762997cd5c9600dc42db2d8aef (patch)
tree332ec66e4054d004dddc432fe032ff411f8014d2 /math
parentb1dcccce606f1ed122605facc3efdd0739bda358 (diff)
downloadpkgsrc-930d2ba9e23266762997cd5c9600dc42db2d8aef.tar.gz
Update to 0.29
Add missing DEPENDS Upstream changes: 0.29 30 May 2013 - Fix a signed vs. unsigned char issue in ranged moebius. Thanks to the Debian testers for finding this. - XS is_prob_prime / is_prime now use a BPSW-style test (SPRP2 plus extra strong Lucas test) for values over 2^32. This results in up to 2.5x faster performance for large 64-bit values on most machines. All PSP2s have been verified with Jan Feitsma's database. - forprimes now uses a segmented sieve. This (1) allows arbitrary 64-bit ranges with good memory use, and (2) allows nesting on threaded perls. - prime_count_approx for very large values (> 10^36) was very slow without Math::MPFR. Switch to Li+correction for large values if Math::MPFR is not available. - Workaround for MSVC compiler. - Added: is_pseudoprime (Fermat probable prime test) is_lucas_pseudoprime (standard Lucas-Selfridge test) is_extra_strong_lucas_pseudoprime (Mo/Jones/Grantham E.S. Lucas test) 0.28 23 May 2013 - An optimization to nth_prime caused occasional threaded Win32 faults. Adjust so this is avoided. - Yet another XS micro-speedup (PERL_NO_GET_CONTEXT) - forprimes { block } [begin,]end. e.g. forprimes { say } 100; $sum = 0; forprimes { $sum += $_ } 1000,50000; say $sum; forprimes { say if is_prime($_+2) } 10000; # print twin primes - my $it = prime_iterator(10000); say $it->(); This is experimental (that is, the interface may change). 0.27 20 May 2013 - is_prime, is_prob_prime, next_prime, and prev_prime now all go straight to XS if possible. This makes them much faster for small inputs without having to use the -nobigint flag. - XS simple number validation to lower function call overhead. Still a lot more overhead compared to directly calling the XS functions, but it shaves a little bit of time off every call. - Speedup pure Perl factoring of small numbers. - is_prob_prime / is_prime about 10% faster for composites. - Allow '+N' as the second parameter to primes.pl. This allows: primes.pl 100 +30 to return the primes between 100 and 130. Or: primes.pl 'nth_prime(1000000000)' +2**8 - Use EXTENDED_TESTING to turn on extra tests. 0.26 21 April 2013 - Pure Perl factoring: - real p-1 -- much faster and more effective - Fermat (no better than HOLF) - speedup for pbrent - simple ECM - redo factoring mix - New functions: prime_certificate produces a certificate of primality. verify_prime checks a primality certificate. - Pure perl primality proof now uses BLS75 instead of Lucas, so some numbers will be much faster [n-1 only needs factoring to (n/2)^1/3]. - Math::Prime::Util::ECAffinePoint and ECProjectivePoint modules for dealing with elliptic curves. 0.25 19 March 2013 - Speed up p-1 stage 2 factoring. Combined with some minor changes to the general factoring combination, ~20% faster for 19 digit semiprimes. - New internal macro to loop over primary sieve starting at 2. Simplifies code in quite a few places. - Forgot to skip one of the tests with broken 5.6.2. 0.24 10 March 2013 - Fix compilation with old pre-C99 strict compilers (decl after statement). - euler_phi on a range wasn't working right with some ranges. - More XS prime count improvements to speed and space. Add some tables to the sieve count so it runs a bit faster. Transition from sieve later. - PP prime count for 10^9 and larger is ~2x faster and uses much less memory. Similar impact for nth_prime 10^8 or larger. - Let factor.pl accept expressions just like primes.pl. 0.23 5 March 2013 - Replace XS Zeta for x > 5 with series from Cephes. It is 1 eps more accurate for a small fraction of inputs. More importantly, it is much faster in range 5 < x < 10. This only affects non-integer inputs. - PP Zeta code replaced (for no-MPFR, non-bignums) with new series. The new code is much more accurate for small values, and *much* faster. - Add consecutive_integer_lcm function, just like MPU::GMP's (though we define ci_lcm(0) = 0, which should get propogated). - Implement binary search on RiemannR for XS nth_prime when n > 2e11. Runs ~2x faster for 1e12, 3x faster for 1e13. Thanks to Programming Praxis for the idea and motivation. - Add the first and second Chebyshev functions (theta and psi). - put isqrt(n) in util.h, use it everywhere. put icbrt(n) in lehmer.h, use it there. - Start on Lagarias-Miller-Odlyzko prime count. - A new data structure for the phi(x,a) function used by all the fast prime count routines. Quite a bit faster and most importantly, uses half the memory of the old structure. - Performance: - Divisor sum with no sub is ~10x faster. - Speed up PP version of exp_mangoldt, create XS version. - Zeta much faster as mentioned above. - faster nth_prime as mentioned above. - AKS about 10% faster. - Unroll a little more in sieve inner loop. A couple percent faster. - Faster prime_count and nth_prime due to new phi(x,a) (about 1.25x). 0.22 26 February 2013 - Move main factor loop out of xs and into factor.c. - Totient and Moebius now have complete XS implementations. - Ranged totient uses less memory when segmented. - Switch thread locking to pthreads condition variables. 0.21 22 February 2013 - Switch to using Bytes::Random::Secure for random primes. This is a big change in that it is the first non-CORE module used. However, it gets rid of lots of possible stupidness from system rand. - Spelling fixes in documentation. - primes.pl: Add circular and Panaitopol primes. - euler_phi and moebius now will compute over a range. - Add mertens function: 1000+ times faster than summing moebius($_). - Add exp_mangoldt function: exponential of von Mangoldt's function. - divisor_sum defaults to sigma if no sub is given (i.e. it sums). - Performance: - Speedup factoring small numbers. With -nobigint factoring from 1 to 10M, it's 1.2x faster. 1.5x faster than Math::Factor::XS. - Totient and M枚bius over a range are much faster than separate calls. - divisor_sum is 2x faster. - primes.pl is much faster with Pillai primes. - Reduce overhead in euler_phi -- about 2x faster for individual calls. 0.20 3 February 2013 - Speedup for PP AKS, and turn off test on 32-bit machines. - Replaced fast sqrt detection in PP.pm with a slightly slower version. The bloom filter doesn't work right in 32-bit Perl. Having a non-working detector led to really bad performance. Hence this and the AKS change should speed up testing on some 32-bit machines by a huge amount. - Fix is_perfect_power in XS AKS. 0.19 1 February 2013 - Update MR bases with newest from http://miller-rabin.appspot.com/. - Fixed some issues when using bignum and Calc BigInt backend, and bignum and Perl 5.6. - Added tests for bigint is_provable_prime. - Added a few tests to give better coverage. - Adjust some validation subroutines to cut down on overhead. 0.18 14 January 2013 - Add random_strong_prime. - Fix builds with Solaris 9 and older. - Add some debug info to perhaps find out why old ActiveState Perls are dying in Math::BigInt::Calc, as if they were using really old versions that run out of memory trying to calculate '2 ** 66'. http://code.activestate.com/ppm/Math-Prime-Util/ 0.17 20 December 2012 - Perl 5.8.1 - 5.8.7 miscalculates 12345 ** 4, which I used in a test. - Fix (hopefully) for MSC compilation. - Unroll sieve loop for another 20% or so speedup. It won't have much practical application now that we use Lehmer's method for counts, but there are some cases that can still show speedups. - Changed the rand functionality yet again. Sorry. This should give better support for plugging in crypto RNG's when used from other modules. 0.16 11 December 2012 - randbits >= 32 on some 32-bit systems was messing us up. Restrict our internal randbits to wordsize-1.
Diffstat (limited to 'math')
-rw-r--r--math/p5-Math-Prime-Util/Makefile7
-rw-r--r--math/p5-Math-Prime-Util/distinfo8
2 files changed, 8 insertions, 7 deletions
diff --git a/math/p5-Math-Prime-Util/Makefile b/math/p5-Math-Prime-Util/Makefile
index 34344a48a5e..08525c2a7ea 100644
--- a/math/p5-Math-Prime-Util/Makefile
+++ b/math/p5-Math-Prime-Util/Makefile
@@ -1,8 +1,7 @@
-# $NetBSD: Makefile,v 1.4 2013/05/31 12:41:23 wiz Exp $
+# $NetBSD: Makefile,v 1.5 2013/07/14 06:11:50 wen Exp $
-DISTNAME= Math-Prime-Util-0.15
+DISTNAME= Math-Prime-Util-0.29
PKGNAME= p5-${DISTNAME}
-PKGREVISION= 1
CATEGORIES= math perl5
MASTER_SITES= ${MASTER_SITE_PERL_CPAN:=Math/}
@@ -19,6 +18,8 @@ SUBST_SED.perl= -e "s|/usr/bin/env perl|${PERL5}|"
USE_LANGUAGES+= c
+DEPENDS+= p5-Bytes-Random-Secure>=0.23:../../security/p5-Bytes-Random-Secure
+
PERL5_PACKLIST= auto/Math/Prime/Util/.packlist
.include "../../lang/perl5/module.mk"
diff --git a/math/p5-Math-Prime-Util/distinfo b/math/p5-Math-Prime-Util/distinfo
index bae112200d8..ddac6ae431e 100644
--- a/math/p5-Math-Prime-Util/distinfo
+++ b/math/p5-Math-Prime-Util/distinfo
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.3 2012/12/10 13:35:45 wen Exp $
+$NetBSD: distinfo,v 1.4 2013/07/14 06:11:50 wen Exp $
-SHA1 (Math-Prime-Util-0.15.tar.gz) = 655a44be5b1a93c1f5e90b8da459966721f32c42
-RMD160 (Math-Prime-Util-0.15.tar.gz) = c83b3b1519f6dc48a3daf26b429a34391bf52242
-Size (Math-Prime-Util-0.15.tar.gz) = 184113 bytes
+SHA1 (Math-Prime-Util-0.29.tar.gz) = 8e75797a22174c0371f2a6fe885ad1d55b161830
+RMD160 (Math-Prime-Util-0.29.tar.gz) = 6feb9e812cf436d9757d630e9dc377112ebdbf84
+Size (Math-Prime-Util-0.29.tar.gz) = 256271 bytes