このアーカイブには二種類のプログラムが入っています。 ひとつはTinyMTで、もうひとつはTinyMTDC です。 TinyMT は疑似乱数生成器で、TinyMTDC はTinyMT用のパラメータ生成器です。
TinyMT はMersenne TwisterやWELL RNGと比べて小さな疑似乱数生成器です。 32bit 出力の tinymt32 は内部状態空間に16バイト、パラメータに12バイトしか使いません。 64bit 出力の tinymt64 は内部状態空間に16バイト、パラメータに16バイト使用します。 TinyMT によって生成される疑似乱数列の周期は2127-1になります。
TinyMT は C言語で書かれていて、 c99の stdint.h と inttypes.h を使用しています。
check32 8f7011ee fc78ff1f 3793fdff > tmp32.txtdiff で違いがなければO.K.
diff tmp32.txt check32.out.txt
check64 fa051f40 ffd0fff4 58d02ffeffbfffbc > tmp64.txt
diff tmp64.txt check64.out.txt
TinyMTDC はTinyMT用のパラメータ生成器です。TinyMT は TinyMTDC で生成されたパラメータを使用しなければなりません。TinyMTDC はユーザの 指定するidごとに216個以上のパラメータを生成することが できます。
TinyMTDC はC++で書かれていて、テンプレート機能を使用しています。
TinyMTDC は CSV形式の出力をします。ここでは出力形式の説明をします。
Column or Row | Description |
---|---|
The first row |
# charactristic, type, id, mat1, mat2, tmat1, weight, delta最初の行は常にこのとおりの出力をします。 この行は以下の出力の各カラムのタイトルになっています。 |
1st column charactristic | 第1カラムは特性多項式を示しています。この特性多項式は0と1を係数とする 127次の既約多項式です。最高次の係数が最初にくるように(つまり降べきの順に) 16進数で表示しています。127次の多項式は128個の係数を持つので最初の16進数は 8以上の数になっています。また既約であることから、 最後の16進数は奇数になっています。 |
2nd column type | 第2カラムはこのパラメータセットが32bit版TinyMT用か、64bit版用かを示しています。 |
3rd column id | 第3カラムはユーザーが指定したIDを出力しています。 |
4th column mat1 | 第4カラムはmat1 パラメータを示しています。このカラムは16進数で表示されています。 |
5th column mat2 | 第5カラムはmat2 パラメータを示しています。このカラムは16進数で表示されています。 |
6th columns tmat | 第6カラムは tmat パラメータを示しています。このカラムは16進数で表示されています。 |
7th column weight | 第7カラムは特性多項式のハミングウェイトを示しています。項数128の半分の64程度から 大きく離れていないことが望ましいと言われています。 |
8th delta | 第8カラムは TinyMTDC の内部評価値 total dimension defectを示しています。 0 が最もよい内部評価値となります。この値が小さくなるように tmat を選んでいます。 |
Copyright (c) 2011 Mutsuo Saito, Makoto Matsumoto, Hiroshima University and The University of Tokyo. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Hiroshima University nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.