summaryrefslogtreecommitdiff
path: root/lib/zipf.h
blob: a23afe5e88457ffd7b8c7cda83b2d1b9ce6cbb28 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#ifndef FIO_ZIPF_H
#define FIO_ZIPF_H

#include <inttypes.h>
#include "rand.h"

struct zipf_state {
	uint64_t nranges;
	double theta;
	double zeta2;
	double zetan;
	double pareto_pow;
	struct frand_state rand;
	unsigned long rand_off;
};

void zipf_init(struct zipf_state *zs, unsigned long nranges, double theta);
unsigned long long zipf_next(struct zipf_state *zs);

void pareto_init(struct zipf_state *zs, unsigned long nranges, double h);
unsigned long long pareto_next(struct zipf_state *zs);

#endif