a23afe5e88457ffd7b8c7cda83b2d1b9ce6cbb28
[fio.git] / lib / zipf.h
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         unsigned long rand_off;
15 };
16
17 void zipf_init(struct zipf_state *zs, unsigned long nranges, double theta);
18 unsigned long long zipf_next(struct zipf_state *zs);
19
20 void pareto_init(struct zipf_state *zs, unsigned long nranges, double h);
21 unsigned long long pareto_next(struct zipf_state *zs);
22
23 #endif