freeswitch/third_party/bnlib/sieve.h

24 lines
900 B
C
Raw Normal View History

2010-02-20 18:51:54 +00:00
/*
* 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);