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 31 32 33 34 35 36 37 38 39
|
@q $Id: random.hweb 2335 2009-01-14 10:35:21Z kamenik $ @>
@q Copyright 2007, Ondra Kamenik @>
@*2 Random number generation. Start of {\tt random.h} file.
@s RandomGenerator int
@s SystemRandomGenerator int
@c
#ifndef RANDOM_H
#define RANDOM_H
@<|RandomGenerator| class declaration@>;
@<|SystemRandomGenerator| class declaration@>;
extern SystemRandomGenerator system_random_generator;
#endif
@ This is a general interface to an object able to generate random
numbers. Subclass needs to implement |uniform| method, other is, by
default, implemented here.
@<|RandomGenerator| class declaration@>=
class RandomGenerator {
public:@;
virtual double uniform() = 0;
int int_uniform();
double normal();
};
@ This implements |RandomGenerator| interface with system |drand| or
|rand|. It is not thread aware.
@<|SystemRandomGenerator| class declaration@>=
class SystemRandomGenerator : public RandomGenerator {
public:@;
double uniform();
void initSeed(int seed);
};
@ End of {\tt random.h} file.
|