“英特尔MKL”一次可以生成多少个随机数?似乎超出了某些限制 下面的C++代码与英特尔的数学内核库(MKL)中的向量统计库(VSL)提供的示例几乎相同。但是,一旦变量“total”大于(比如)3*10^9,它将输出
MKL错误:输入vdRngUniform时参数3不正确 所以我猜这意味着“总数”可能太大了。但手册中写道,“SFMT19937方法的周期长度等于生成序列的2^19937-1”,远大于10^9 我想知道上限到底是多少,例如,对于double(我在手册中找不到任何相关信息)。当然,任何克服这个问题的方法都将受到赞赏。提前谢谢“英特尔MKL”一次可以生成多少个随机数?似乎超出了某些限制 下面的C++代码与英特尔的数学内核库(MKL)中的向量统计库(VSL)提供的示例几乎相同。但是,一旦变量“total”大于(比如)3*10^9,它将输出,c++,random,intel-mkl,C++,Random,Intel Mkl,MKL错误:输入vdRngUniform时参数3不正确 所以我猜这意味着“总数”可能太大了。但手册中写道,“SFMT19937方法的周期长度等于生成序列的2^19937-1”,远大于10^9 我想知道上限到底是多少,例如,对于double(我在手册中找不到任何相关信息)。当然,任何克服这个问题的方法都将受到赞赏。提前谢谢 ...... MKL_LONG status; VSLStreamStatePtr stream; ...... int main(){ vslNewStream(&s
......
MKL_LONG status;
VSLStreamStatePtr stream;
......
int main(){
vslNewStream(&stream, VSL_BRNG_SFMT19937, 777);
rnd_data = (double*)malloc(total * sizeof(double));
status = vdRngUniform(VSL_RNG_METHOD_UNIFORM_STD, stream, total, rnd_data, 0.0, 1.0);
vslDeleteStream(&stream);
......
}
查看vdRngUniform
需要一个const int
,它能够表示2^31个非负值(在大多数现代平台上)。3*10^9大于该值,因此可能会向函数传递一些负值(即有符号整数溢出)