Index: third_party/mt19937ar/readme-mt.txt |
=================================================================== |
--- third_party/mt19937ar/readme-mt.txt (revision 0) |
+++ third_party/mt19937ar/readme-mt.txt (revision 0) |
@@ -0,0 +1,74 @@ |
+This is a Mersenne Twister pseudorandom number generator |
+with period 2^19937-1 with improved initialization scheme, |
+modified on 2002/1/26 by Takuji Nishimura and Makoto Matsumoto. |
+ |
+Contents of this tar ball: |
+readme-mt.txt this file |
+mt19937ar.c the C source (ar: initialize by ARray) |
+mt19937ar.out Test outputs of six types generators. 1000 for each |
+ |
+1. Initialization |
+ The initialization scheme for the previous versions of MT |
+(e.g. 1999/10/28 version or earlier) has a tiny problem, that |
+the most significant bits of the seed is not well reflected |
+to the state vector of MT. |
+ |
+This version (2002/1/26) has two initialization schemes: |
+init_genrand(seed) and init_by_array(init_key, key_length). |
+ |
+init_genrand(seed) initializes the state vector by using |
+one unsigned 32-bit integer "seed", which may be zero. |
+ |
+init_by_array(init_key, key_length) initializes the state vector |
+by using an array init_key[] of unsigned 32-bit integers |
+of length key_kength. If key_length is smaller than 624, |
+then each array of 32-bit integers gives distinct initial |
+state vector. This is useful if you want a larger seed space |
+than 32-bit word. |
+ |
+2. Generation |
+After initialization, the following type of pseudorandom numbers |
+are available. |
+ |
+genrand_int32() generates unsigned 32-bit integers. |
+genrand_int31() generates unsigned 31-bit integers. |
+genrand_real1() generates uniform real in [0,1] (32-bit resolution). |
+genrand_real2() generates uniform real in [0,1) (32-bit resolution). |
+genrand_real3() generates uniform real in (0,1) (32-bit resolution). |
+genrand_res53() generates uniform real in [0,1) with 53-bit resolution. |
+ |
+Note: the last five functions call the first one. |
+if you need more speed for these five functions, you may |
+suppress the function call by copying genrand_int32() and |
+replacing the last return(), following to these five functions. |
+ |
+3. main() |
+main() is an example to initialize with an array of length 4, |
+then 1000 outputs of unsigned 32-bit integers, |
+then 1000 outputs of real [0,1) numbers. |
+ |
+4. The outputs |
+The output of the mt19937ar.c is in the file mt19937ar.out. |
+If you revise or translate the code, check the output |
+by using this file. |
+ |
+5. Cryptography |
+This generator is not cryptoraphically secure. |
+You need to use a one-way (or hash) function to obtain |
+a secure random sequence. |
+ |
+6. Correspondence |
+See: |
+URL http://www.math.keio.ac.jp/matumoto/emt.html |
+email matumoto@math.keio.ac.jp, nisimura@sci.kj.yamagata-u.ac.jp |
+ |
+7. Reference |
+M. Matsumoto and T. Nishimura, |
+"Mersenne Twister: A 623-Dimensionally Equidistributed Uniform |
+Pseudo-Random Number Generator", |
+ACM Transactions on Modeling and Computer Simulation, |
+Vol. 8, No. 1, January 1998, pp 3--30. |
+ |
+------- |
+Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, |
+All rights reserved. |