#在C++模板中,一段生成随机数的代码,
请问代码里面distrib_int、 distrib_flt_s、 distrib_flt_e、(distrib_flt_s(gen) 的意思是什么?
#include <cstdio>
#include <cstdlib>
#include <limits>
#include <math.h>
#include <random>
void wrapper(T t, Op op) {
…………
std::random_device rd; // Will be used to obtain a seed for the random number engine
std::mt19937 gen{rd()}; // Standard mersenne_twister_engine seeded with rd()
std::uniform_int_distribution <int32_t> distrib_int(std::numeric_limits<int32_t>::min(), std::numeric_limits<int32_t>::max());
//uniform_real_distribution:生成平均分布随机的浮点数
std::uniform_real_distribution<float> distrib_flt_s(-1., 1.);
std::uniform_real_distribution<float> distrib_flt_e(-30., 30.);
// Initialize the host input vectors
for (int i = 0; i < numElements; ++i) {
if (std::is_integral<T>::value) {
h_A[i] = (T) distrib_int(gen);
h_B[i] = (T) distrib_int(gen);
} else {
// pow(x,y):计算x的y次幂
h_A[i] = (T) (distrib_flt_s(gen) * std::pow(10., distrib_flt_e(gen)));
h_B[i] = (T) (distrib_flt_s(gen) * std::pow(10., distrib_flt_e(gen)));
}
}
…………
}