[mlpack] 09/207: Use mlpack random generator objects.

Barak A. Pearlmutter barak+git at pearlmutter.net
Thu Mar 23 17:53:36 UTC 2017


This is an automated email from the git hooks/post-receive script.

bap pushed a commit to branch master
in repository mlpack.

commit 391fb9b110160ce1d2daaeb8d525c91d2d32853b
Author: Ryan Curtin <ryan at ratml.org>
Date:   Tue Dec 27 11:40:56 2016 -0500

    Use mlpack random generator objects.
---
 src/mlpack/tests/distribution_test.cpp | 53 +++++++++++++---------------------
 1 file changed, 20 insertions(+), 33 deletions(-)

diff --git a/src/mlpack/tests/distribution_test.cpp b/src/mlpack/tests/distribution_test.cpp
index c1efea1..4f0953e 100644
--- a/src/mlpack/tests/distribution_test.cpp
+++ b/src/mlpack/tests/distribution_test.cpp
@@ -403,7 +403,6 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainTest)
   // Create a gamma distribution random generator.
   double alphaReal = 5.3;
   double betaReal = 1.5;
-  std::default_random_engine generator;
   std::gamma_distribution<double> dist(alphaReal, betaReal);
 
   // Create a N x d gamma distribution data and fit the results.
@@ -414,7 +413,7 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainTest)
   // Random generation of gamma-like points.
   for (size_t j = 0; j < d; ++j)
     for (size_t i = 0; i < N; ++i)
-      rdata(j, i) = dist(generator);
+      rdata(j, i) = dist(math::randGen);
 
   // Create Gamma object and call Train() on reference set.
   GammaDistribution gDist;
@@ -432,7 +431,7 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainTest)
   // Random generation of gamma-like points.
   for (size_t j = 0; j < d2; ++j)
     for (size_t i = 0; i < N2; ++i)
-      rdata2(j, i) = dist(generator);
+      rdata2(j, i) = dist(math::randGen);
 
   // Fit results using old object.
   gDist.Train(rdata2);
@@ -452,7 +451,6 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainWithProbabilitiesTest)
   double betaReal = 6.7;
 
   // Create a gamma distribution random generator.
-  std::default_random_engine generator;
   std::gamma_distribution<double> dist(alphaReal, betaReal);
 
   size_t N = 50000;
@@ -461,14 +459,10 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainWithProbabilitiesTest)
 
   for (size_t j = 0; j < d; j++)
     for (size_t i = 0; i < N; i++)
-      rdata(j, i) = dist(generator);
+      rdata(j, i) = dist(math::randGen);
 
-  // create a uniform distribution random generator
-  std::uniform_real_distribution<double> prob(0, 1);
-  arma::vec probabilities(N);
-
-  for (size_t i = 0; i < N; i++)
-    probabilities(i) = prob(generator);
+  // Fill the probabilities randomly.
+  arma::vec probabilities(N, arma::fill::randu);
 
   // Fit results with probabilities and data.
   GammaDistribution gDist;
@@ -478,17 +472,17 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainWithProbabilitiesTest)
   GammaDistribution gDist2;
   gDist2.Train(rdata);
 
-  BOOST_REQUIRE_CLOSE(gDist2.Alpha(0), gDist.Alpha(0), 1);
-  BOOST_REQUIRE_CLOSE(gDist2.Beta(0), gDist.Beta(0), 1);
+  BOOST_REQUIRE_CLOSE(gDist2.Alpha(0), gDist.Alpha(0), 1.5);
+  BOOST_REQUIRE_CLOSE(gDist2.Beta(0), gDist.Beta(0), 1.5);
 
-  BOOST_REQUIRE_CLOSE(gDist2.Alpha(1), gDist.Alpha(1), 1);
-  BOOST_REQUIRE_CLOSE(gDist2.Beta(1), gDist.Beta(1), 1);
+  BOOST_REQUIRE_CLOSE(gDist2.Alpha(1), gDist.Alpha(1), 1.5);
+  BOOST_REQUIRE_CLOSE(gDist2.Beta(1), gDist.Beta(1), 1.5);
 
-  BOOST_REQUIRE_CLOSE(alphaReal, gDist.Alpha(0), 1);
-  BOOST_REQUIRE_CLOSE(betaReal, gDist.Beta(0), 1);
+  BOOST_REQUIRE_CLOSE(alphaReal, gDist.Alpha(0), 2.5);
+  BOOST_REQUIRE_CLOSE(betaReal, gDist.Beta(0), 2.5);
 
-  BOOST_REQUIRE_CLOSE(alphaReal, gDist.Alpha(1), 1);
-  BOOST_REQUIRE_CLOSE(betaReal, gDist.Beta(1), 1);
+  BOOST_REQUIRE_CLOSE(alphaReal, gDist.Alpha(1), 2.5);
+  BOOST_REQUIRE_CLOSE(betaReal, gDist.Beta(1), 2.5);
 }
 
 /**
@@ -501,7 +495,6 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainAllProbabilities1Test)
   double betaReal = 6.7;
 
   // Create a gamma distribution random generator.
-  std::default_random_engine generator;
   std::gamma_distribution<double> dist(alphaReal, betaReal);
 
   size_t N = 1000;
@@ -510,7 +503,7 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainAllProbabilities1Test)
 
   for (size_t j = 0; j < d; j++)
     for (size_t i = 0; i < N; i++)
-      rdata(j, i) = dist(generator);
+      rdata(j, i) = dist(math::randGen);
 
   // Fit results with only data.
   GammaDistribution gDist;
@@ -544,13 +537,9 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainTwoDistProbabilities1Test)
   double betaReal2 = 8.4;
 
   // Create two gamma distribution random generators.
-  std::default_random_engine generator;
   std::gamma_distribution<double> dist(alphaReal, betaReal);
   std::gamma_distribution<double> dist2(alphaReal2, betaReal2);
 
-  std::uniform_real_distribution<double> lowProb(0, 0.02);
-  std::uniform_real_distribution<double> highProb(0.98, 1);
-
   size_t N = 50000;
   size_t d = 2;
   arma::mat rdata(d, N);
@@ -562,18 +551,18 @@ BOOST_AUTO_TEST_CASE(GammaDistributionTrainTwoDistProbabilities1Test)
     for (size_t i = 0; i < N; i++)
     {
       if (i % 2 == 0)
-        rdata(j, i) = dist(generator);
+        rdata(j, i) = dist(math::randGen);
       else
-        rdata(j, i) = dist2(generator);
+        rdata(j, i) = dist2(math::randGen);
     }
   }
 
   for (size_t i = 0; i < N; i++)
   {
     if (i % 2 == 0)
-      probabilities(i) = lowProb(generator);
+      probabilities(i) = 0.02 * math::Random();
     else
-      probabilities(i) = highProb(generator);
+      probabilities(i) = 0.98 + 0.02 * math::Random();
   }
 
   GammaDistribution gDist;
@@ -607,14 +596,13 @@ BOOST_AUTO_TEST_CASE(GammaDistributionFittingTest)
   // Create a gamma-random generator and data.
   double alphaReal = 5.3;
   double betaReal = 1.5;
-  std::default_random_engine generator;
   std::gamma_distribution<double> dist(alphaReal, betaReal);
 
   // Random generation of gamma-like points.
   arma::mat rdata(d, N);
   for (size_t j = 0; j < d; ++j)
     for (size_t i = 0; i < N; ++i)
-      rdata(j, i) = dist(generator);
+      rdata(j, i) = dist(math::randGen);
 
   // Create Gamma object and call Train() on reference set.
   GammaDistribution gDist;
@@ -629,14 +617,13 @@ BOOST_AUTO_TEST_CASE(GammaDistributionFittingTest)
   // Create a gamma-random generator and data.
   double alphaReal2 = 7.2;
   double betaReal2 = 0.9;
-  std::default_random_engine generator2;
   std::gamma_distribution<double> dist2(alphaReal2, betaReal2);
 
   // Random generation of gamma-like points.
   arma::mat rdata2(d, N);
   for (size_t j = 0; j < d; ++j)
     for (size_t i = 0; i < N; ++i)
-      rdata2(j, i) = dist2(generator2);
+      rdata2(j, i) = dist2(math::randGen);
 
   // Create Gamma object and call Train() on reference set.
   GammaDistribution gDist2;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/mlpack.git



More information about the debian-science-commits mailing list