-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathprime_iterator.h
More file actions
27 lines (21 loc) · 825 Bytes
/
prime_iterator.h
File metadata and controls
27 lines (21 loc) · 825 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#ifndef PRIME_ITERATOR_H
#define PRIME_ITERATOR_H
#include "ptypes.h"
typedef struct {
UV p;
UV segment_start;
UV segment_bytes;
unsigned char* segment_mem;
} prime_iterator;
#define PRIME_ITERATOR(i) prime_iterator i = {2, 0, 0, 0}
extern void prime_iterator_global_startup(void);
extern void prime_iterator_global_shutdown(void);
extern void prime_iterator_init(prime_iterator *iter);
extern void prime_iterator_destroy(prime_iterator *iter);
extern UV prime_iterator_next(prime_iterator *iter);
extern UV prime_iterator_prev(prime_iterator *iter);
extern void prime_iterator_setprime(prime_iterator *iter, UV n);
extern int prime_iterator_isprime(prime_iterator *iter, UV n);
extern UV* sieve_to_n(UV n, UV* count);
extern unsigned long* sieve_to_n_ui(unsigned long n, unsigned long* count);
#endif