Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
primegen(3)		   Library Functions Manual		   primegen(3)

NAME
       primegen	- enumerate small primes

SYNTAX
       #include	<primegen.h>

       void primegen_init(&pg);
       uint64 primegen_next(&pg);
       uint64 primegen_peek(&pg);
       uint64 primegen_count(&pg,bound);
       void primegen_skipto(&pg,bound);

       struct primegen pg;
       uint64 bound;

DESCRIPTION
       The primegen library generates prime numbers in order: 2, 3, 5, 7, etc.
       It can generate primes as large as 10^15.

       The simplest way	to use primegen	is to call primegen_init and then call
       primegen_next  repeatedly.  The first call to primegen_next will	return
       2; the next call	will return 3; the next	call will return 5; and	so on.

       At each moment the next few primes to be	returned by primegen_next  are
       buffered	 inside	 pg.   primegen_init initializes pg with the first few
       primes, starting	at 2.  You must	initialize pg with  primegen_init  be-
       fore  using  pg	with any of the	other primegen routines.  You may call
       primegen_init again to start over at 2.

       primegen_next returns the next buffered prime and  removes  that	 prime
       from  pg.   primegen_peek  returns the next buffered prime but does not
       change pg.

       primegen_skipto discards	all primes up to bound.	 It has	the  same  ef-
       fect as

	    while (primegen_peek(&pg) <	bound)
	      primegen_next(&pg);

       primegen_count  discards	 all primes up to bound	and returns the	number
       of primes discarded.

       You can set up several independent generators;  all  primegen  data  is
       stored  in pg.  Beware, however,	that each struct primegen uses quite a
       bit of memory.

SEE ALSO
       primes(1), primespeed(1)

								   primegen(3)

NAME | SYNTAX | DESCRIPTION | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=primegen&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help