This is an automated email from the git hooks/post-receive script. ppm-guest pushed a commit to annotated tag v0.40 in repository libmath-prime-util-perl.
commit 9dbf0972cc9667af838b7c8a452da534484b9099 Author: Dana Jacobsen <d...@acm.org> Date: Tue Mar 4 18:53:24 2014 -0800 Speedup for exp_mangoldt --- Changes | 2 ++ util.c | 13 +++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Changes b/Changes index c688a15..5be7e68 100644 --- a/Changes +++ b/Changes @@ -4,6 +4,8 @@ Revision history for Perl module Math::Prime::Util - Update PP Frobenius-Underwood test. + - Speed up exp_mangoldt. + 0.39 2014-03-01 diff --git a/util.c b/util.c index b5374c9..be03129 100644 --- a/util.c +++ b/util.c @@ -1197,13 +1197,14 @@ UV exp_mangoldt(UV n) { if (n <= 1) return 1; else if ((n & (n-1)) == 0) return 2; /* Power of 2 */ else if ((n & 1) == 0) return 1; /* Even number (not 2) */ + else if (is_prob_prime(n)) return n; else { - UV i, factors[MPU_MAX_FACTORS+1]; - UV nfactors = factor(n, factors); - for (i = 1; i < nfactors; i++) - if (factors[i] != factors[0]) - return 1; - return factors[0]; + int k = powerof(n); + if (k >= 2) { + n = (k==2) ? isqrt(n) : (UV)(pow(n,1.0/k)+0.0000001); + if (is_prob_prime(n)) return n; + } + return 1; } } -- 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