This is an automated email from the git hooks/post-receive script. ppm-guest pushed a commit to annotated tag v0.10 in repository libmath-prime-util-perl.
commit 1670eb89526939b873b680583e6f8141cf3221ea Author: Dana Jacobsen <d...@acm.org> Date: Thu Jun 28 12:15:32 2012 -0600 Style change for is_prime -- no performance difference --- util.c | 46 ++++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/util.c b/util.c index 4cff197..460f2ec 100644 --- a/util.c +++ b/util.c @@ -33,41 +33,43 @@ static UV count_zero_bits(const unsigned char* m, UV nbytes) /* Does trial division, assuming x not divisible by 2, 3, or 5 */ -static int _is_trial_prime7(UV x) +static int _is_trial_prime7(UV n) { - UV q, i; + UV limit, i; + limit = sqrt(n); i = 7; while (1) { /* trial division, skipping multiples of 2/3/5 */ - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 4; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 2; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 4; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 2; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 4; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 6; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 2; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 6; + if (i > limit) break; if ((n % i) == 0) return 0; i += 4; + if (i > limit) break; if ((n % i) == 0) return 0; i += 2; + if (i > limit) break; if ((n % i) == 0) return 0; i += 4; + if (i > limit) break; if ((n % i) == 0) return 0; i += 2; + if (i > limit) break; if ((n % i) == 0) return 0; i += 4; + if (i > limit) break; if ((n % i) == 0) return 0; i += 6; + if (i > limit) break; if ((n % i) == 0) return 0; i += 2; + if (i > limit) break; if ((n % i) == 0) return 0; i += 6; } return 2; } /* Does trial division or prob tests, assuming x not divisible by 2, 3, or 5 */ -static int _is_prime7(UV x) +static int _is_prime7(UV n) { - UV q, i; + UV limit, i; - if (x > MPU_PROB_PRIME_BEST) - return is_prob_prime(x); /* We know this works for all 64-bit n */ + if (n > MPU_PROB_PRIME_BEST) + return is_prob_prime(n); /* We know this works for all 64-bit n */ + limit = sqrt(n); i = 7; while (1) { /* trial division, skipping multiples of 2/3/5 */ - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 4; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 2; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 4; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 2; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 4; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 6; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 2; - q = x/i; if (q<i) break; if (x==(q*i)) return 0; i += 6; + if (i > limit) break; if ((n % i) == 0) return 0; i += 4; + if (i > limit) break; if ((n % i) == 0) return 0; i += 2; + if (i > limit) break; if ((n % i) == 0) return 0; i += 4; + if (i > limit) break; if ((n % i) == 0) return 0; i += 2; + if (i > limit) break; if ((n % i) == 0) return 0; i += 4; + if (i > limit) break; if ((n % i) == 0) return 0; i += 6; + if (i > limit) break; if ((n % i) == 0) return 0; i += 2; + if (i > limit) break; if ((n % i) == 0) return 0; i += 6; } return 2; } -- 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