61 typedef unsigned long uint32;
65 static const int N = 624;
66 static const int M = 397;
67 static const uint32 K = 0x9908B0DFU;
76 inline uint32 hiBit(uint32 u) {
77 return u & 0x80000000U;
80 inline uint32 loBit(uint32 u) {
81 return u & 0x00000001U;
84 inline uint32 loBits(uint32 u) {
85 return u & 0x7FFFFFFFU;
88 inline uint32 mixBits(uint32 u, uint32 v) {
89 return hiBit(u)|loBits(v);
92 uint32 reloadMT(
void) ;
95 void seedMT(uint32 seed) ;
100 inline uint32 randomMT(
void) ;
103 void seedMT_MFM(uint32 s) ;
107 inline uint32 RandMT::randomMT(
void) {
115 y ^= (y << 7) & 0x9D2C5680U;
116 y ^= (y << 15) & 0xEFC60000U;
117 return(y ^ (y >> 18));