This is an automated email from the git hooks/post-receive script. ppm-guest pushed a commit to annotated tag v0.27 in repository libmath-prime-util-perl.
commit b7d411ef41537832b4ade8890881784353103995 Author: Dana Jacobsen <d...@acm.org> Date: Wed May 15 13:02:50 2013 -0700 Remove dead code --- factor.c | 24 +----------------------- factor.h | 3 +++ sieve.c | 1 + sieve.h | 6 ++++-- util.c | 41 ++--------------------------------------- util.h | 1 - 6 files changed, 11 insertions(+), 65 deletions(-) diff --git a/factor.c b/factor.c index fd1a40f..4f2fc89 100644 --- a/factor.c +++ b/factor.c @@ -3,6 +3,7 @@ #include <string.h> #include <math.h> +#define FUNC_gcd_ui #include "ptypes.h" #include "factor.h" #include "util.h" @@ -359,7 +360,6 @@ int _XS_is_prob_prime(UV n) bases[0] = 2; bases[1] = 7; bases[2] = 61; nbases = 3; } #else -#if 1 /* Better bases from http://miller-rabin.appspot.com/, 10 Mar 2013 */ if (n < UVCONST(341531)) { bases[0] = UVCONST(9345883071009581737); @@ -396,28 +396,6 @@ int _XS_is_prob_prime(UV n) bases[6] = UVCONST( 1795265022 ); nbases = 7; } -#else - /* Classic bases */ - if (n < UVCONST(9080191)) { - bases[0] = 31; bases[1] = 73; nbases = 2; - } else if (n < UVCONST(4759123141)) { - bases[0] = 2; bases[1] = 7; bases[2] = 61; nbases = 3; - } else if (n < UVCONST(21652684502221)) { - bases[0] = 2; bases[1] = 1215; bases[2] = 34862; bases[3] = 574237825; - nbases = 4; - } else if (n < UVCONST(341550071728321)) { - bases[0] = 2; bases[1] = 3; bases[2] = 5; bases[3] = 7; bases[4] = 11; - bases[5] = 13; bases[6] = 17; nbases = 7; - } else if (n < UVCONST(3825123056546413051)) { - bases[0] = 2; bases[1] = 3; bases[2] = 5; bases[3] = 7; bases[4] = 11; - bases[5] = 13; bases[6] = 17; bases[7] = 19; bases[8] = 23; nbases = 9; - } else { - bases[0] = 2; bases[1] = 3; bases[2] = 5; bases[3] = 7; bases[4] = 11; - bases[5] = 13; bases[6] = 17; bases[7] = 19; bases[8] = 23; bases[9] = 29; - bases[10]= 31; bases[11]= 37; - nbases = 12; - } -#endif #endif prob_prime = _XS_miller_rabin(n, bases, nbases); return 2*prob_prime; diff --git a/factor.h b/factor.h index f8919a7..77608c5 100644 --- a/factor.h +++ b/factor.h @@ -25,9 +25,11 @@ extern int pminus1_factor(UV n, UV *factors, UV B1, UV B2); extern int _XS_miller_rabin(UV n, const UV *bases, int nbases); extern int _XS_is_prob_prime(UV n); +extern int _XS_is_prime_tom(UV n, int t); extern UV _XS_divisor_sum(UV n); +#ifdef FUNC_gcd_ui static UV gcd_ui(UV x, UV y) { UV t; if (y < x) { t = x; x = y; y = t; } @@ -36,5 +38,6 @@ static UV gcd_ui(UV x, UV y) { } return x; } +#endif #endif diff --git a/sieve.c b/sieve.c index 618fd21..a8dae1a 100644 --- a/sieve.c +++ b/sieve.c @@ -3,6 +3,7 @@ #include <string.h> #include <math.h> +#define FUNC_next_prime_in_sieve #include "sieve.h" #include "ptypes.h" #include "cache.h" diff --git a/sieve.h b/sieve.h index 6dca024..4dddde0 100644 --- a/sieve.h +++ b/sieve.h @@ -27,7 +27,7 @@ static const unsigned char distancewheel30[30] = static const unsigned char wheeladvance30[30] = {0,6,0,0,0,0,0,4,0,0,0,2,0,4,0,0,0,2,0,4,0,0,0,6,0,0,0,0,0,2}; -#if 0 +#ifdef FUNC_is_prime_in_sieve static int is_prime_in_sieve(const unsigned char* sieve, UV p) { UV d = p/30; UV m = p - d*30; @@ -36,6 +36,7 @@ static int is_prime_in_sieve(const unsigned char* sieve, UV p) { } #endif +#ifdef FUNC_next_prime_in_sieve /* Warning -- can go off the end of the sieve */ static UV next_prime_in_sieve(const unsigned char* sieve, UV p) { UV d, m; @@ -49,7 +50,8 @@ static UV next_prime_in_sieve(const unsigned char* sieve, UV p) { } while (sieve[d] & masktab30[m]); return(d*30+m); } -#if 0 +#endif +#ifdef FUNC_prev_prime_in_sieve static UV prev_prime_in_sieve(const unsigned char* sieve, UV p) { UV d, m; if (p <= 7) diff --git a/util.c b/util.c index c7c3505..88c33f5 100644 --- a/util.c +++ b/util.c @@ -85,25 +85,6 @@ 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 n) -{ - UV limit, i; - limit = isqrt(n); - i = 7; - while (1) { /* trial division, skipping multiples of 2/3/5 */ - 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 n) { @@ -194,24 +175,6 @@ int _XS_is_prime(UV n) } -UV next_trial_prime(UV n) -{ - UV d,m; - - if (n < 7) - return (n < 2) ? 2 : (n < 3) ? 3 : (n < 5) ? 5 : 7; - - d = n/30; - m = n - d*30; - /* Move forward one, knowing we may not be on the wheel */ - if (m == 29) { d++; m = 1; } else { m = nextwheel30[m]; } - while (!_is_trial_prime7(d*30+m)) { - m = nextwheel30[m]; if (m == 1) d++; - } - return(d*30+m); -} - - UV _XS_next_prime(UV n) { UV d, m; @@ -800,8 +763,8 @@ char* _moebius_range(UV lo, UV hi) for (i = lo; i <= hi; i++) { IV a = A[i-lo]; if (a != 0) - mu[i-lo] = (a != i && -a != i) ? (a<0) - (a>0) - : (a>0) - (a<0); + mu[i-lo] = (a != (IV)i && -a != (IV)i) ? (a<0) - (a>0) + : (a>0) - (a<0); } Safefree(A); #endif diff --git a/util.h b/util.h index b9d966b..9807ffb 100644 --- a/util.h +++ b/util.h @@ -7,7 +7,6 @@ extern int _XS_get_verbose(void); extern void _XS_set_verbose(int v); extern int _XS_is_prime(UV x); -extern UV next_trial_prime(UV x); extern UV _XS_next_prime(UV x); extern UV _XS_prev_prime(UV x); -- 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