[libmath-prime-util-perl] 07/33: Adjust primes sub to reflect new segment sieve behavior
Partha P. Mukherjee
ppm-guest at moszumanska.debian.org
Thu May 21 18:51:41 UTC 2015
This is an automated email from the git hooks/post-receive script.
ppm-guest pushed a commit to annotated tag v0.37
in repository libmath-prime-util-perl.
commit 9e49408499e55ed9203f411e36ac551e250b81ec
Author: Dana Jacobsen <dana at acm.org>
Date: Fri Jan 17 16:47:21 2014 -0800
Adjust primes sub to reflect new segment sieve behavior
---
TODO | 2 --
lib/Math/Prime/Util.pm | 13 +++----------
2 files changed, 3 insertions(+), 12 deletions(-)
diff --git a/TODO b/TODO
index 7fe2ca7..1bd642b 100644
--- a/TODO
+++ b/TODO
@@ -76,8 +76,6 @@
- Benchmark simple SoEs, SoA. Include Sisyphus SoE hidden in Math::GMPz.
-- Redo trial vs. segment test in Util.pm primes().
-
- commit Porter example
- Try using malloc/free for win32 cache memory. #define NO_XSLOCKS
diff --git a/lib/Math/Prime/Util.pm b/lib/Math/Prime/Util.pm
index cbe7d07..0b2321a 100644
--- a/lib/Math/Prime/Util.pm
+++ b/lib/Math/Prime/Util.pm
@@ -320,16 +320,9 @@ sub primes {
# to mention using much less memory.
} elsif ($high > (1024*1024*30)) {
$method = 'Segment';
- # The segment sieve doesn't itself use a segmented sieve for the base,
- # so it will slow down for very large endpoints (larger than 10^16).
- # Make a crude predictor of segment and trial and decide.
- if ($high > 10**14) {
- my $est_trial = ($high-$low) / 1_000_000; # trial estimate 1s per 1M
- # segment is exponential on high, plus very fast scan.
- my $est_segment = 0.2 * 3.3**(log($high / 10**15) / log(10))
- + ($high-$low) / 1_000_000_000_000;
- $method = 'Trial' if $est_trial <= $est_segment;
- }
+ # Our segment sieve is pretty good about not using too many resources,
+ # but with a very small range, it's better to just do trial.
+ $method = 'Trial' if $high > 10**14 && ($high-$low) < 50000;
# Only want half or less of the range low-high ?
} elsif ( int($high / ($high-$low)) >= 2 ) {
--
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