我有一个for循环:
for (i=0; i<N; i++) a[i] = rand()
但这太慢了,我可以使用 BLAS/vDSP/vecLib/etc。我正在寻找一个函数来创建一个随机数数组;似乎应该包括在内。
除了这个函数的名称,我还希望有一些好的 vDSP/vecLib/etc 文档。我找到了一些文档,但这并不好——只是对功能的一般描述。
我有一个for循环:
for (i=0; i<N; i++) a[i] = rand()
但这太慢了,我可以使用 BLAS/vDSP/vecLib/etc。我正在寻找一个函数来创建一个随机数数组;似乎应该包括在内。
除了这个函数的名称,我还希望有一些好的 vDSP/vecLib/etc 文档。我找到了一些文档,但这并不好——只是对功能的一般描述。
dlarnv
做你描述的。它使用随机(统一或正常)值填充double
数组,并包含在 vecLib 中。
快速且分布良好的随机数生成器可用于多种用途,因此我相信您可以在那里找到一些很棒的随机数生成器。我将从查看Mersenne Twister开始,特别是针对 SIMD 优化的实现,例如this。
速度的下一步将来自基于 GPU 或 DSP 的算法,但我目前不知道任何公共领域。