mex编译器中的“-DranSHR3”选项是什么

时间:2011-01-21 17:34:08

标签: c++ c matlab mex

我在Mathworks的文件交换站点上看到了several Matlab贡献,作者在使用mex进行编译时使用了选项“-DranSHR3”。我检查了mex,GNU GCC 和Microsoft的cl文档,但没有找到任何内容。

有关此选项用途的任何想法?我在哪里可以找到关于它的更多细节?

由于

2 个答案:

答案 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

在任何源文件中。