This is an automated email from the git hooks/post-receive script. ppm-guest pushed a commit to annotated tag v0.38 in repository libmath-prime-util-perl.
commit 141a8de526660972d4884099b98a6fa842585f5d Author: Dana Jacobsen <d...@acm.org> Date: Fri Feb 14 11:51:44 2014 -0800 Small totient speedup --- util.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/util.c b/util.c index 2485e87..a85ee4b 100644 --- a/util.c +++ b/util.c @@ -1112,8 +1112,12 @@ int kronecker_ss(IV a, IV b) { UV totient(UV n) { UV i, nfacs, totient, lastf, facs[MPU_MAX_FACTORS+1]; if (n <= 1) return n; - nfacs = factor(n, facs); totient = 1; + /* phi(2m) = 2phi(m) if m even, phi(m) if m odd */ + while ((n & 0x3) == 0) { n >>= 1; totient <<= 1; } + if ((n & 0x1) == 0) { n >>= 1; } + /* factor and calculate totient */ + nfacs = factor(n, facs); lastf = 0; for (i = 0; i < nfacs; i++) { UV f = facs[i]; -- 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