diff options
author | itojun <itojun@NetBSD.org> | 2001-01-20 15:06:34 +0000 |
---|---|---|
committer | itojun <itojun@NetBSD.org> | 2001-01-20 15:06:34 +0000 |
commit | 67d8db7069789ff841deda241dbdf183960935c1 (patch) | |
tree | 0636762d913671d9e3d4981635ab762a32cce8a9 /primes | |
parent | bf73580a4a388748a773b8bbd0b6b06bcbf390d8 (diff) | |
download | bsdgames-darwin-67d8db7069789ff841deda241dbdf183960935c1.tar.gz bsdgames-darwin-67d8db7069789ff841deda241dbdf183960935c1.tar.zst bsdgames-darwin-67d8db7069789ff841deda241dbdf183960935c1.zip |
avoid strange typcast.
Diffstat (limited to 'primes')
-rw-r--r-- | primes/pr_tbl.c | 6 | ||||
-rw-r--r-- | primes/primes.c | 13 |
2 files changed, 10 insertions, 9 deletions
diff --git a/primes/pr_tbl.c b/primes/pr_tbl.c index 25d2132a..f743cf5c 100644 --- a/primes/pr_tbl.c +++ b/primes/pr_tbl.c @@ -1,4 +1,4 @@ -/* $NetBSD: pr_tbl.c,v 1.5 1999/09/08 21:17:55 jsm Exp $ */ +/* $NetBSD: pr_tbl.c,v 1.6 2001/01/20 15:06:34 itojun Exp $ */ /* * Copyright (c) 1989, 1993 @@ -41,7 +41,7 @@ #if 0 static char sccsid[] = "@(#)pr_tbl.c 8.1 (Berkeley) 5/31/93"; #else -__RCSID("$NetBSD: pr_tbl.c,v 1.5 1999/09/08 21:17:55 jsm Exp $"); +__RCSID("$NetBSD: pr_tbl.c,v 1.6 2001/01/20 15:06:34 itojun Exp $"); #endif #endif /* not lint */ @@ -550,4 +550,4 @@ const ubig prime[] = { }; /* pr_limit - largest prime in the prime table */ -const unsigned long *pr_limit = &prime[(sizeof(prime)/sizeof(prime[0]))-1]; +const ubig *pr_limit = &prime[(sizeof(prime)/sizeof(prime[0]))-1]; diff --git a/primes/primes.c b/primes/primes.c index 67fa6a4f..bd2a993c 100644 --- a/primes/primes.c +++ b/primes/primes.c @@ -1,4 +1,4 @@ -/* $NetBSD: primes.c,v 1.9 1999/09/08 21:17:55 jsm Exp $ */ +/* $NetBSD: primes.c,v 1.10 2001/01/20 15:06:35 itojun Exp $ */ /* * Copyright (c) 1989, 1993 @@ -46,7 +46,7 @@ __COPYRIGHT("@(#) Copyright (c) 1989, 1993\n\ #if 0 static char sccsid[] = "@(#)primes.c 8.5 (Berkeley) 5/10/95"; #else -__RCSID("$NetBSD: primes.c,v 1.9 1999/09/08 21:17:55 jsm Exp $"); +__RCSID("$NetBSD: primes.c,v 1.10 2001/01/20 15:06:35 itojun Exp $"); #endif #endif /* not lint */ @@ -229,6 +229,7 @@ primes(start, stop) char *tab_lim; /* the limit to sieve on the table */ const ubig *p; /* prime table pointer */ ubig fact_lim; /* highest prime for current block */ + ubig mod; /* temp storage for mod */ /* * A number of systems can not convert double values into unsigned @@ -309,11 +310,11 @@ primes(start, stop) p = &prime[7]; /* 19 is next prime, pi(19)=7 */ do { /* determine the factor's initial sieve point */ - q = (char *)(start%factor); /* temp storage for mod */ - if ((long)q & 0x1) { - q = &table[(factor-(long)q)/2]; + mod = start%factor; + if (mod & 0x1) { + q = &table[(factor-mod)/2]; } else { - q = &table[q ? factor-((long)q/2) : 0]; + q = &table[mod ? factor-(mod/2) : 0]; } /* sive for our current factor */ for ( ; q < tab_lim; q += factor) { |