d金魚 世界のMersenne Twisterに挑戦する!
前回の敗北(http://d.hatena.ne.jp/studiokingyo/20051229)を喫し全く懲りない私は新しいターゲットを探していた。その一つに世界のMersenne Twisterが上がった。
そう、Mersenne Twister(メルセンヌツイスター)はlibrarian(ライブラリアン)なd金魚がdkutil_cに実装していない数少ないメジャーなアルゴリズムがあったりする。
いろんなサイトに飛んでいくと、よく、高速化研究や安全性研究*1をされていて
データ構造的なソースコードより多いんじゃないかな?と思ってしまうほどだ。
なのであえて組む必要はないと思っていたが、なんか、他意はないが無駄なことがしたくなったため行おうと思う。*2
あえて目指すならば・・・最強*3のメルセンヌツイスターライブラリ
さて!早速勝負するならば*4資料集めなり!
- 公式サイト(2006年現在)
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/mt.html
- DLL版の製作者 Einguste氏のサイト
http://hp.vector.co.jp/authors/VA020429/
- 和田維作のホームページ 良い乱数・悪い乱数でお世話になっている。
http://www001.upp.so-net.ne.jp/isaku/index.html
- boost::randomにmersenne_twister.hppがある。templateを使った上手いgenericな実装で感心する。
boost http://www.boost.org
- とってもごはん MMX版MTの製作者 SYN氏のサイト
http://www.emit.jp/
- C++ MMX版 Matthew Bellew 氏のサイト http://www.bellew.net/rand/MMXRand.html
- Pentium4版MTの製作者 光成滋生氏のサイト - an Advanced Optimization for x86-CPU - http://homepage1.nifty.com/herumi/
- 直接は関係ないかもしれないが間接的には関係ありそう http://www.mersenne.org/
via http://homepage2.nifty.com/m_kamada/di200302.htm#04_03
http://hp.vector.co.jp/authors/VA020429/mt.html
LICENSE:
mt19937.dll(mt19937-dll.c):'mt19937-2.c'のライセンスに準じます。(Artistic License)
mt19937m.dll(mt19937-mdll.c):'mt19937-2.c'のライセンスに準じます。(Artistic License)
cokus.dll(cokus-dll.c):'cokus.c'のライセンスに準じます。(GPL2)
mt19937ar.dll(mt19937ar-dll.c):'mt19937ar.c'のライセンスに準じます。(BSD License)
mt19937ar-cok.dll(mt19937ar-cok-dll.c):'mt19937ar-cok.c'のライセンスに準じます。(BSD License)
詳細は各ソースファイルをご覧下さい。
より引用
即ち、BSD Licenceian ?な私はArtistic Licence(芸術的ライセンス?)は良く知らなかったので
http://www.nilab.info/resource/license/
にてArtisitic Licenceianになるために勉強した。サイト製作者に感謝。
で、勝手にArtistic Licenceを要約すると・・・
NYSLみたく自由は無いけど、良識ある心?で成果物を扱ってね^^
って感じだと思います。いや、良くわかんないけど・・・以下が私にとって重要な所だった。
- 条文3:ソースコードのままの時は次のうち一つを守るなり〜いくつ守っても良いなり〜
- a. 著作権放棄するなら自由なり〜。
- b. 会社、団体内でな自由なり〜。(個人でも?多分そうだよ^^)
- c. 標準版?(つまり改造元)との区別をしっかりできるように名前とか変えたりして別物にするなり〜。
- d. 「著作権所有者」と配布に関する事をよくよく話し合うなり〜。
- a. 著作権放棄するなら自由なり〜。
- 条文4:実行ファイルやライブラリで配布する時どれか守るなり〜いくつ守っても良いなり〜
以上!
もう、頭が混乱しているのでさらば。