dynare/dynare++/kord/random.hweb

40 lines
1001 B
Plaintext

@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.