00001
00002
00003 #ifndef RANDOM_HPP
00004 #define RANDOM_HPP
00005
00006 #define RANDOM_ARRAY_SZ 624
00007
00008
00015 class Rand {
00016 public:
00025 static void saveState(unsigned long* mt, int& mti);
00026
00035 static void loadState(unsigned long* mt, int mti);
00036
00043 static void init_genrand(unsigned long s);
00044
00052 static void init_by_array(unsigned long init_key[], int key_length);
00053
00060 static unsigned long int32(void);
00061
00068 static long int31(void);
00069
00076 static double real1(void);
00077
00084 static double real2(void);
00085
00092 static double real3(void);
00093
00100 static double res53(void);
00101
00102 private:
00103 static unsigned long mt[RANDOM_ARRAY_SZ];
00104 static int mti;
00105 };
00106
00107 #endif