OptiPy
Loading...
Searching...
No Matches
mt.h
1
7
8#ifndef METRICS_MT_H
9#define METRICS_MT_H
10
22{
23public:
24 MersenneTwister(void);
25 ~MersenneTwister(void);
26
27 double random(void) { return genrand_real1(); }
28 void print(void);
29
30 void init_genrand(unsigned long s);
31 void init_by_array(unsigned long* init_key, int key_length);
32
33 unsigned long genrand_int32(void);
34 long genrand_int31(void);
35 double genrand_real1(void);
36 double genrand_real2(void);
37 double genrand_real3(void);
38 double genrand_res53(void);
39
40private:
41 static const int N = 624;
42 static const int M = 397;
43 // constant vector a
44 static const unsigned long MATRIX_A = 0x9908b0dfUL;
45 // most significant w-r bits
46 static const unsigned long UPPER_MASK = 0x80000000UL;
47 // least significant r bits
48 static const unsigned long LOWER_MASK = 0x7fffffffUL;
49
50 unsigned long* mt_; // the state vector
51 int mti_; // mti == N+1 means mt not initialized
52
53 unsigned long* init_key_; // Storage for the seed vector
54 int key_length_; // Seed vector length
55 unsigned long s_; // Seed integer
56 bool seeded_by_array_; // Seeded by an array
57 bool seeded_by_int_; // Seeded by an integer
58};
59
60#endif // METRICS_MT_H
double genrand_real2(void)
Definition mt.cpp:218
double genrand_real1(void)
Definition mt.cpp:207
void init_genrand(unsigned long s)
Definition mt.cpp:87
MersenneTwister(void)
Definition mt.cpp:58
double genrand_real3(void)
Definition mt.cpp:229
long genrand_int31(void)
Definition mt.cpp:197
void init_by_array(unsigned long *init_key, int key_length)
Definition mt.cpp:112
void print(void)
Definition mt.cpp:251
~MersenneTwister(void)
Definition mt.cpp:71
double genrand_res53(void)
Definition mt.cpp:240
unsigned long genrand_int32(void)
Definition mt.cpp:155