タグ

SFMTに関するyassのブックマーク (2)

  • 乱数ライブラリ

    2009年1月31日に64 bit Ubuntu を導入したので、 64 bit gcc での動作確認、性能評価、チューニングの作業をしました。 新しく開発しました(64 bit 非対応) jump.c.html : Xorshift で戻ったり一瞬で相対ジャンプできるプログラム 浮動小数点数に特化した乱数ライブラリ(SSE2対応) zdsfmt.zip : ライブラリ体一式 libZD.zip : エクセルのためのダイナミック・リンク・ライブラリ(DLL)一式 32ビット整数の生成は他のに比べ少し遅くなりますが、浮動小数点数の生成はかなり高速です。 元のメルセンヌ・ツイスタを使った乱数ライブラリ(SSE3対応) zmtrand.zip : ライブラリ体一式 libZMT.zip : エクセルのためのダイナミック・リンク・ライブラリ(DLL)一式 マクロ HAVE_SSE3 を定義して

  • 6.6. まとめ

    乱数の質を重視する場合 mt19937ar、長周期のSFMT、長周期のWELL(WELLのサイトからより長周期のものを得るべきである)あるいは長周期のmt-liteが、次元均等分布に優れる。 なお、いずれも暗号用途に直接使用するべきではない。 速度を重視する場合 乱数の質を度外視してよいなら、ほとんどの場合LCGが最速である。 x86アーキテクチャのSSE命令またはPowerPCアーキテクチャのAltiVec命令を使用可能ならば、SFMTがよい選択肢である。特に大量の乱数を必要とする場合は、block版を用いるのがよい。 SSEまたはAltiVecを使用できないならば、大量の乱数を生成するなら調律のないblock版mt-lite、さもなければxor128を用いるのがよいだろう。ただし、アーキテクチャによって傾向に差異があるため、実際の環境で速度を測定して選択するか、もしくは項6.3. 「実

  • 1