diff --git a/src/caffe/util/math_functions.cpp b/src/caffe/util/math_functions.cpp index 832f641c..3e27f8dd 100644 --- a/src/caffe/util/math_functions.cpp +++ b/src/caffe/util/math_functions.cpp @@ -402,9 +402,12 @@ void caffe_vRngUniform(const int n, Dtype* r, boost::uniform_real random_distribution( a, caffe_nextafter(b)); Caffe::random_generator_t &generator = Caffe::vsl_stream(); + boost::variate_generator > variate_generator( + generator, random_distribution); - for(int i = 0; i < n; i += 1) { - r[i] = random_distribution(generator); + for (int i = 0; i < n; ++i) { + r[i] = variate_generator(); } } @@ -436,7 +439,7 @@ void caffe_vRngGaussian(const int n, Dtype* r, const Dtype a, boost::normal_distribution > variate_generator( generator, random_distribution); - for(int i = 0; i < n; ++i) { + for (int i = 0; i < n; ++i) { r[i] = variate_generator(); } } @@ -458,9 +461,12 @@ void caffe_vRngBernoulli(const int n, Dtype* r, const double p) { // FIXME check if parameters are handled in the same way ? boost::bernoulli_distribution random_distribution(p); Caffe::random_generator_t &generator = Caffe::vsl_stream(); + boost::variate_generator > variate_generator( + generator, random_distribution); - for(int i = 0; i < n; i += 1) { - r[i] = random_distribution(generator); + for (int i = 0; i < n; ++i) { + r[i] = variate_generator(); } }