1 #ifndef FIO_ZIPF_H
2 #define FIO_ZIPF_H
3 
4 #include <inttypes.h>
5 #include "rand.h"
6 
7 struct zipf_state {
8 	uint64_t nranges;
9 	double theta;
10 	double zeta2;
11 	double zetan;
12 	double pareto_pow;
13 	struct frand_state rand;
14 	uint64_t rand_off;
15 };
16 
17 void zipf_init(struct zipf_state *zs, unsigned long nranges, double theta, unsigned int seed);
18 unsigned long long zipf_next(struct zipf_state *zs);
19 
20 void pareto_init(struct zipf_state *zs, unsigned long nranges, double h, unsigned int seed);
21 unsigned long long pareto_next(struct zipf_state *zs);
22 
23 #endif
24