File: zipf.h

package info (click to toggle)
fio 3.25-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 4,812 kB
  • sloc: ansic: 69,429; python: 4,155; sh: 4,058; makefile: 749; yacc: 204; lex: 184
file content (26 lines) | stat: -rw-r--r-- 595 bytes parent folder | download | duplicates (2)
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
#ifndef FIO_ZIPF_H
#define FIO_ZIPF_H

#include <inttypes.h>
#include "rand.h"
#include "types.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, uint64_t nranges, double theta, unsigned int seed);
uint64_t zipf_next(struct zipf_state *zs);

void pareto_init(struct zipf_state *zs, uint64_t nranges, double h, unsigned int seed);
uint64_t pareto_next(struct zipf_state *zs);
void zipf_disable_hash(struct zipf_state *zs);

#endif