| /* |
| * sieve.h - Trial division for prime finding. |
| * |
| * This is generally not intended for direct use by a user of the library; |
| * the prime.c and dhprime.c functions. are more likely to be used. |
| * However, a special application may need these. |
| */ |
| struct BigNum; |
| |
| /* Remove multiples of a single number from the sieve */ |
| void |
| sieveSingle(unsigned char *array, unsigned size, unsigned start, unsigned step); |
| |
| /* Build a sieve starting at the number and incrementing by "step". */ |
| int sieveBuild(unsigned char *array, unsigned size, struct BigNum const *bn, |
| unsigned step, unsigned dbl); |
| |
| /* Similar, but uses a >16-bit step size */ |
| int sieveBuildBig(unsigned char *array, unsigned size, struct BigNum const *bn, |
| struct BigNum const *step, unsigned dbl); |
| |
| /* Return the next bit set in the sieve (or 0 on failure) */ |
| unsigned sieveSearch(unsigned char const *array, unsigned size, unsigned start); |