私は、Mathworks のファイル交換サイトでいくつかのMatlab の貢献を見てきました。ここでは、作成者が mex でコンパイルするときにオプション "-DranSHR3" を使用しています。mex、GNU GCC、および Microsoft のclドキュメントを確認しましたが、何も見つかりませんでした。
このオプションの用途について何か考えはありますか? 詳細はどこで確認できますか?
ありがとう
このオプション-DranSHR3
はプリプロセッサ SymbolranSHR3
を定義し、デフォルトのランダム ジェネレータの代わりに SHR3 ランダム ジェネレータを選択します。
ここでは、Matlab の乱数発生器について読むことができます。
ここで、SHR3 に関するやや長いコメントを見つけました。
少なくとも Matlab R2010b では、ランダム ストリームのデフォルトのジェネレーターは Mersenne Twister であり、これは非常に良い選択です。Mersenne Twister と比較して SHR3 の方が速いかもしれませんが、わかりません。確かなことは、SHR3 が Mersenne Twister よりも悪いランダム特性を持っていることです。まず、MT の 2^19936-1 の代わりに 2^64 の短い周期があります。対応する Matlab のドキュメントは次のとおりです。
おそらく、SHR3 の人気は、Mersenne Twister がデフォルトまたは互換性のためではなかった古いバージョンに由来するのでしょうか?
-D
通常、マクロを設定するために使用されます。
#define ranSHR3
任意のソース ファイルで。