[libmath-prime-util-perl] 22/25: Back off expensive PP prime count testing unless extended testing

Partha P. Mukherjee ppm-guest at moszumanska.debian.org
Thu May 21 18:50:39 UTC 2015


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

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

commit 95e028018df5763769ab58bfd9700659ea8d2a5b
Author: Dana Jacobsen <dana at acm.org>
Date:   Sun Dec 8 02:43:52 2013 -0800

    Back off expensive PP prime count testing unless extended testing
---
 TODO              |  8 +++++++-
 t/13-primecount.t | 15 ++++++++++-----
 2 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/TODO b/TODO
index bc17e82..5f5f455 100644
--- a/TODO
+++ b/TODO
@@ -34,7 +34,6 @@
   not completely convinced we can't do better.
 
 - Big features:
-   - LMO prime count
    - QS factoring
 
 - segment sieve should itself use a segment for its primes.
@@ -60,3 +59,10 @@
   extra primality checks, which aren't cheap in PP.
 
 - Consider using Test::Number::Delta for many tests
+
+- More tweaking of LMO prime count.
+    - Consider using UV size for sieve
+    - is there any way to see if we could safely use asm popcnt?
+    - OpenMP.  The step 7 inner loop is available.
+
+- Add Inverse Li and Legendre Phi to API?
diff --git a/t/13-primecount.t b/t/13-primecount.t
index e2c0975..f61925d 100644
--- a/t/13-primecount.t
+++ b/t/13-primecount.t
@@ -87,7 +87,7 @@ plan tests => 0 + 1
                 + $use64 * 3 * scalar(keys %pivals64)
                 + scalar(keys %intervals)
                 + 1
-                + 7; # prime count specific methods
+                + 8 + 2*$extra; # prime count specific methods
 
 ok( eval { prime_count(13); 1; }, "prime_count in void context");
 
@@ -157,12 +157,17 @@ sub parse_range {
 # Make sure each specific algorithm isn't broken.
 SKIP: {
   skip "Not XS -- skipping direct primecount tests", 5 unless $isxs;
-  # This has to be above lehmer.c's SIEVE_LIMIT or nothing happens.
+  # This has to be above SIEVE_LIMIT in lehmer.c and lmo.c or nothing happens.
   is(Math::Prime::Util::_XS_lehmer_pi  (66123456), 3903023, "XS Lehmer count");
   is(Math::Prime::Util::_XS_meissel_pi (66123456), 3903023, "XS Meissel count");
-  is(Math::Prime::Util::_XS_legendre_pi(66123456), 3903023, "XS Legendre count");
+  is(Math::Prime::Util::_XS_legendre_pi(66123456), 3903023,"XS Legendre count");
+  is(Math::Prime::Util::_XS_LMOS_pi    (66123456), 3903023, "XS LMOS count");
   is(Math::Prime::Util::_XS_LMO_pi     (66123456), 3903023, "XS LMO count");
   is(Math::Prime::Util::_XS_prime_count(66123456), 3903023, "XS sieve count");
 }
-is(Math::Prime::Util::PP::_lehmer_pi   (3456789), 247352, "PP Lehmer count");
-is(Math::Prime::Util::PP::_sieve_prime_count(3456789), 247352, "PP sieve count");
+is(Math::Prime::Util::PP::_lehmer_pi   (1456789), 111119, "PP Lehmer count");
+is(Math::Prime::Util::PP::_sieve_prime_count(1456789), 111119, "PP sieve count");
+if ($extra) {
+  is(Math::Prime::Util::PP::_lehmer_pi   (3456789), 247352, "PP Lehmer count");
+  is(Math::Prime::Util::PP::_sieve_prime_count(3456789), 247352, "PP sieve count");
+}

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



More information about the Pkg-perl-cvs-commits mailing list