C++ 更快的捻线机引擎?mt19937_16?

C++ 更快的捻线机引擎?mt19937_16?,c++,c++11,random,C++,C++11,Random,我在做一些科学计算,我注意到我的大部分代码都是用来计算随机数的 我使用twister引擎生成我的数字mt19937,我注意到还有一个较慢的\u 64版本,有人知道将神奇的数字输入到模板中以生成希望更快的\u 16版本吗 有人可能会问,为什么不使用xorshf96或其他蹩脚的东西呢。我喜欢twist引擎的光谱特性。也许这对你有用。也许这对你有用。只是确认一下,你对16位宽的随机数所能提供的(更)有限范围没问题。你试过512(32位代码)或1024(64位代码)吗?它们比机器翻译简单,但能产生类似

我在做一些科学计算,我注意到我的大部分代码都是用来计算随机数的

我使用twister引擎生成我的数字
mt19937
,我注意到还有一个较慢的
\u 64
版本,有人知道将神奇的数字输入到模板中以生成希望更快的
\u 16
版本吗


有人可能会问,为什么不使用xorshf96或其他蹩脚的东西呢。我喜欢twist引擎的光谱特性。

也许这对你有用。

也许这对你有用。

只是确认一下,你对16位宽的随机数所能提供的(更)有限范围没问题。你试过512(32位代码)或1024(64位代码)吗?它们比机器翻译简单,但能产生类似质量的输出。@CodesInChaos:WELL不仅能产生类似质量的输出,还能产生更好的输出(…而且更快)。米哈伊尔:不是做一个16版本,而是把结果一分为二有什么阻碍吗?这可能会更快,并且在假设这些位足够“随机”的情况下,这不会有什么区别。只需按照我的操作:提前生成它们,然后#包含生成的文件。嘿,普雷斯托,快随机数;pI希望每个线程都有单独的引擎。否则会有太多的。只是确认一下,您对16位宽的随机数将给您的(更)有限范围没有问题。您是否尝试过Well512(用于32位代码)或Well1024(用于64位代码)?它们比机器翻译简单,但能产生类似质量的输出。@CodesInChaos:WELL不仅能产生类似质量的输出,还能产生更好的输出(…而且更快)。米哈伊尔:不是做一个16版本,而是把结果一分为二有什么阻碍吗?这可能会更快,并且在假设这些位足够“随机”的情况下,这不会有什么区别。只需按照我的操作:提前生成它们,然后#包含生成的文件。嘿,普雷斯托,快随机数;pI希望每个线程都有单独的引擎。否则会有太多的问题。