[mlpack-git] master: cleanup sensing test (a9f4eca)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Thu Mar 5 22:10:03 EST 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/904762495c039e345beba14c1142fd719b3bd50e...f94823c800ad6f7266995c700b1b630d5ffdcf40
>---------------------------------------------------------------
commit a9f4eca1c40e2487a58bbe2f3b0ae1bc3017b7dc
Author: Stephen Tu <tu.stephenl at gmail.com>
Date: Sat Jan 3 02:25:34 2015 -0800
cleanup sensing test
>---------------------------------------------------------------
a9f4eca1c40e2487a58bbe2f3b0ae1bc3017b7dc
src/mlpack/tests/lrsdp_test.cpp | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
diff --git a/src/mlpack/tests/lrsdp_test.cpp b/src/mlpack/tests/lrsdp_test.cpp
index a19df30..3daf5d7 100644
--- a/src/mlpack/tests/lrsdp_test.cpp
+++ b/src/mlpack/tests/lrsdp_test.cpp
@@ -146,14 +146,16 @@ BOOST_AUTO_TEST_CASE(GaussianMatrixSensingSDP)
LRSDP sensing(0, p, coordinates);
sensing.SparseC().eye(m + n, m + n);
sensing.DenseB() = 2. * b;
+
+ const auto block_rows = arma::span(0, m - 1);
+ const auto block_cols = arma::span(m, m + n - 1);
+
for (size_t i = 0; i < p; ++i)
{
- const auto rows = arma::span(0, m - 1);
- const auto cols = arma::span(m, m + n - 1);
const auto Ai = arma::reshape(A.row(i), n, m);
sensing.DenseA()[i].zeros(m + n, m + n);
- sensing.DenseA()[i](rows, cols) = trans(Ai);
- sensing.DenseA()[i](cols, rows) = Ai;
+ sensing.DenseA()[i](block_rows, block_cols) = trans(Ai);
+ sensing.DenseA()[i](block_cols, block_rows) = Ai;
}
double finalValue = sensing.Optimize(coordinates);
@@ -162,11 +164,15 @@ BOOST_AUTO_TEST_CASE(GaussianMatrixSensingSDP)
const arma::mat rrt = coordinates * trans(coordinates);
for (size_t i = 0; i < p; ++i)
{
- const auto rows = arma::span(0, m - 1);
- const auto cols = arma::span(m, m + n - 1);
const auto Ai = arma::reshape(A.row(i), n, m);
- BOOST_REQUIRE_CLOSE(arma::dot(trans(Ai), rrt(rows, cols)), b(i), 1e-3);
+ const double measurement = arma::dot(trans(Ai), rrt(block_rows, block_cols));
+ BOOST_REQUIRE_CLOSE(measurement, b(i), 1e-3);
}
+
+ // check matrix recovery
+ const double err = arma::norm(Xorig - rrt(block_rows, block_cols), "fro") /
+ arma::norm(Xorig, "fro");
+ BOOST_REQUIRE_SMALL(err, 1e-3);
}
/**
More information about the mlpack-git
mailing list