我在Mathworks的文件交换站点上看到了several Matlab贡献,作者在使用mex进行编译时使用了选项“-DranSHR3”。我检查了mex,GNU GCC 和Microsoft的cl文档,但没有找到任何内容。
有关此选项用途的任何想法?我在哪里可以找到关于它的更多细节?
由于
答案 0 :(得分:2)
选项-DranSHR3
定义预处理器符号ranSHR3
,后者又选择SHR3随机生成器而不是默认生成器。
Here你可以阅读Matlab的随机生成器。
Here我发现了一些关于SHR3的长篇评论。
至少在Matlab R2010b中,随机流的默认生成器是Mersenne Twister,这是一个非常好的选择。与Mersenne Twister相比,SHR3可能会更快,我不知道。可以肯定的是,SHR3的随机性能比Mersenne Twister更差,对于初学者来说,它的周期更短,为2 ^ 64而不是MT的2 ^ 19936-1。 Here是相应的Matlab文档。
也许SHR3的受欢迎程度源于Mersenne Twister不是默认版本或兼容性的旧版本?
答案 1 :(得分:1)
-D
通常用于设置宏:它应该等同于放置
#define ranSHR3
在任何源文件中。