change all Rng's to use variate_generator for consistency
authorJeff Donahue <jeff.donahue@gmail.com>
Wed, 22 Jan 2014 20:42:12 +0000 (12:42 -0800)
committerEvan Shelhamer <shelhamer@imaginarynumber.net>
Fri, 21 Mar 2014 20:52:35 +0000 (13:52 -0700)
src/caffe/util/math_functions.cpp

index 832f641..3e27f8d 100644 (file)
@@ -402,9 +402,12 @@ void caffe_vRngUniform(const int n, Dtype* r,
   boost::uniform_real<Dtype> random_distribution(
       a, caffe_nextafter<Dtype>(b));
   Caffe::random_generator_t &generator = Caffe::vsl_stream();
+  boost::variate_generator<Caffe::random_generator_t,
+      boost::uniform_real<Dtype> > 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<Dtype> > 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<Dtype> random_distribution(p);
   Caffe::random_generator_t &generator = Caffe::vsl_stream();
+  boost::variate_generator<Caffe::random_generator_t,
+      boost::bernoulli_distribution<Dtype> > 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();
   }
 }