primesieve::iterator allows to easily iterate over primes both forwards and backwards.
More...
#include <iterator.hpp>
|
std::size_t | i_ |
|
std::size_t | size_ |
|
uint64_t | start_ |
|
uint64_t | stop_hint_ |
|
uint64_t * | primes_ |
|
void * | memory_ |
|
primesieve::iterator allows to easily iterate over primes both forwards and backwards.
Generating the first prime has a complexity of O(r log log r) operations with r = n^0.5, after that any additional prime is generated in amortized O(log n log log n) operations. The memory usage is PrimePi(n^0.5) * 8 bytes.
- Examples
- prev_prime.cpp, and primesieve_iterator.cpp.
◆ iterator() [1/2]
primesieve::iterator::iterator |
( |
| ) |
|
|
noexcept |
Create a new iterator object.
Generate primes >= 0. The start number is default initialized to 0 and the stop_hint is default initialized UINT64_MAX.
◆ iterator() [2/2]
primesieve::iterator::iterator |
( |
uint64_t |
start, |
|
|
uint64_t |
stop_hint = std::numeric_limits< uint64_t >::max() |
|
) |
| |
|
noexcept |
Create a new iterator object.
- Parameters
-
start | Generate primes >= start (or <= start). |
stop_hint | Stop number optimization hint, gives significant speed up if few primes are generated. E.g. if you want to generate the primes <= 1000 use stop_hint = 1000. |
◆ clear()
void primesieve::iterator::clear |
( |
| ) |
|
|
noexcept |
Reset the start number to 0 and free most memory.
Keeps some smaller data structures in memory (e.g. the PreSieve object) that are useful if the primesieve::iterator is reused. The remaining memory uses at most 200 kilobytes.
◆ jump_to()
void primesieve::iterator::jump_to |
( |
uint64_t |
start, |
|
|
uint64_t |
stop_hint = std::numeric_limits< uint64_t >::max() |
|
) |
| |
|
noexcept |
Reset the primesieve iterator to start.
- Parameters
-
start | Generate primes >= start (or <= start). |
stop_hint | Stop number optimization hint, gives significant speed up if few primes are generated. E.g. if you want to generate the primes <= 1000 use stop_hint = 1000. |
- Examples
- prev_prime.cpp.
◆ next_prime()
uint64_t primesieve::iterator::next_prime |
( |
| ) |
|
|
inline |
◆ prev_prime()
uint64_t primesieve::iterator::prev_prime |
( |
| ) |
|
|
inline |
The documentation for this struct was generated from the following file: