[libmath-prime-util-perl] 06/59: Style change for is_prime -- no performance difference
Partha P. Mukherjee
ppm-guest at moszumanska.debian.org
Thu May 21 18:44:51 UTC 2015
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 <dana at 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
More information about the Pkg-perl-cvs-commits
mailing list