File: CRNG.h

package info (click to toggle)
spring 104.0%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 47,512 kB
  • sloc: cpp: 391,093; ansic: 79,943; python: 12,356; java: 12,201; awk: 5,889; sh: 1,826; xml: 655; makefile: 486; perl: 405; php: 211; objc: 194; sed: 2
file content (30 lines) | stat: -rw-r--r-- 603 bytes parent folder | download | duplicates (5)
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
27
28
29
30
#ifndef RNG_HPP
#define RNG_HPP

#include <cstdlib>
#include <ctime>

#define FRAND_MAX float(RAND_MAX)

struct RNG {
	RNG() {
		srand(time(0));
	}

	/* random float in range [0, range] */
	/* (rand() can return RAND_MAX) */
	float RandFloat(float range = 1.0f) const {
		range = (range < 0.0f)? -range: range;
		return ((rand() / FRAND_MAX) * range);
	}
	/* random int in range [0, (-)range] */
	/* (rand() can return RAND_MAX) */
	int RandInt(int range = 1) const {
		return int((rand() / FRAND_MAX) * range);
	}
};

/* static const, so srand() only instantiated once */
const static RNG rng;

#endif