25 lines
606 B
C
25 lines
606 B
C
#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;
|
|
uint64_t rand_off;
|
|
bool disable_hash;
|
|
};
|
|
|
|
void zipf_init(struct zipf_state *zs, unsigned long nranges, double theta, unsigned int seed);
|
|
unsigned long long zipf_next(struct zipf_state *zs);
|
|
|
|
void pareto_init(struct zipf_state *zs, unsigned long nranges, double h, unsigned int seed);
|
|
unsigned long long pareto_next(struct zipf_state *zs);
|
|
void zipf_disable_hash(struct zipf_state *zs);
|
|
|
|
#endif
|