|  | 
| 
 Defines | 
| #define | N   624 | 
| #define | M   397 | 
| #define | MATRIX_A   0x9908b0df | 
| #define | UPPER_MASK   0x80000000 | 
| #define | LOWER_MASK   0x7fffffff | 
| #define | TEMPERING_MASK_B   0x9d2c5680 | 
| #define | TEMPERING_MASK_C   0xefc60000 | 
| #define | TEMPERING_SHIFT_U(y)   (y >> 11) | 
| #define | TEMPERING_SHIFT_S(y)   (y << 7) | 
| #define | TEMPERING_SHIFT_T(y)   (y << 15) | 
| #define | TEMPERING_SHIFT_L(y)   (y >> 18) | 
| 
 Functions | 
|  | for (;kk< N-1;kk++) | 
|  | return ((double) y/(unsigned long) 0xffffffff) | 
|  | main () | 
| 
 Variables | 
| <!DOCTYPEHTMLPUBLIC"-<!--savedfromurl=(0046)http:<HTML><HEAD><METAcontent="text/html;charset=windows-1250"http-equiv=Content-Type>< METAcontent="MSHTML5.00.3315.2870"name=GENERATOR></HEAD><BODY><
 XMP>#defineN#defineM#defineMATRIX_A#defineUPPER_MASK#defineLOWER_MASK#defineTEMPERING_MASK_B#defineTEMPERING_MASK_C#defineTEMPERING_SHIFT_U(y)#defineTEMPERING_SHIFT_S(y)#defineTEMPERING_SHIFT_T(y)#defineTEMPERING_SHIFT_L(y)staticunsignedlongmt[N];staticintmti=N+1;voidsgenrand(seed)unsignedlongseed;{mt[0]=seed&0xffffffff;for(mti=1;mti<N;mti++)mt[mti]=(69069*mt
 | mag01 [mti-1])&0xffffffff;}doublegenrand(){unsignedlongy;staticunsignedlongmag01[2]={0x0, MATRIX_A};if(mti >=N){intkk;if(mti==N+1) sgenrand(4357);for(kk=0;kk< N-M;kk++){y=(mt[kk]&UPPER_MASK)|(mt[kk+1]&LOWER_MASK);mt[kk]=mt[kk+M]^(y >>[y &0x1] | 
|  | y = (mt[N-1]&UPPER_MASK)|(mt[0]&LOWER_MASK) | 
|  | mt [N-1] = mt[M-1] ^ (y >> 1) ^ mag01[y & 0x1] | 
|  | mti = 0 | 
|  | y = mt[mti++] | 
|  | y = TEMPERING_SHIFT_U(y) | 
|  | y = TEMPERING_SHIFT_S(y) & TEMPERING_MASK_B | 
|  | y = TEMPERING_SHIFT_T(y) & TEMPERING_MASK_C | 
|  | y = TEMPERING_SHIFT_L(y) |