我看過several Matlab在Mathworks的文件交換站點上的貢獻,作者在編譯mex時使用選項「-DranSHR3」。我檢查了mex,GNU GCC和微軟的cl文件,但沒有發現任何內容。什麼是mex編譯器中的「-DranSHR3」選項
關於這個選項用於什麼的想法?我在哪裏可以找到更多關於它的細節?
由於
我看過several Matlab在Mathworks的文件交換站點上的貢獻,作者在編譯mex時使用選項「-DranSHR3」。我檢查了mex,GNU GCC和微軟的cl文件,但沒有發現任何內容。什麼是mex編譯器中的「-DranSHR3」選項
關於這個選項用於什麼的想法?我在哪裏可以找到更多關於它的細節?
由於
選項-DranSHR3
定義了預處理器符號ranSHR3
,它依次選擇SHR3隨機生成器而不是默認的生成器。
Here你可以閱讀關於Matlab的隨機生成器。
Here我發現了一個關於SHR3的有點長的評論。
至少在Matlab R2010b中,隨機流的默認生成器是Mersenne Twister,它是一個非常好的選擇。 SHR3與Mersenne Twister相比可能會更快,我不知道。可以肯定的是SHR3比Mersenne Twister具有更差的隨機特性,對於初始者來說它具有更短的2^64而不是MT的2^19936-1。 Here是相應的Matlab文檔。
也許SHR3的流行起源於Mersenne Twister不是默認或兼容性的舊版本?
-D
通常用於設定一個宏:它應該是等於將一個
#define ranSHR3
在任何源文件。
謝謝@Peter G.爲什麼SHR3比默認隨機生成器更受歡迎?我可以在哪裏瞭解更多關於這方面的信 – 2011-01-21 17:45:37