私はMT19937
テストハーネスで使用して、一様に(符号なし)32ビット[0、-1]値は、元の作者のmt19937.c実装に基づいており、統計的にランダムなビットオクテットストリームの(本質的に無尽蔵)供給を生成します。これは、これらの特定のテストに必要ではないCSPRNGの代わりです。しかし、私は最近WELL
PRNGを検討しています-統計的性質自体(どちらも私のニーズに十分すぎるように思われる)のためではありませんが、より効率的な実装を提案しているようです。
私は学術論文の数学的背景が足りませんが、少なくとも前者の「ねじれ」行列と焼戻し変換に従うことができました。ただし、WELL-n
関数の作成者が提供するコードの多くは、いくつかの魔法の浮動小数点定数(例:)を使用して、浮動小数点生成に焦点を当てているようです2.32830643653869628906e-10
。WELL
コードからステップを省略して、32ビットの均一な配布を提供できますか?または、アルゴリズムは特に浮動小数点分布用に設計/バイアスされていますか?
またはWELL
、要件を満たしながら、「バルク」uint32ベクトル生成のパフォーマンス向上をもたらすと考えるのは間違っていますか?