[mlpack-git] master: cleanup sensing test (21463e0)
gitdub at big.cc.gt.atl.ga.us
gitdub at big.cc.gt.atl.ga.us
Tue Jan 6 16:18:34 EST 2015
Repository : https://github.com/mlpack/mlpack
On branch : master
Link : https://github.com/mlpack/mlpack/compare/9147fd3ee8072669c18422de4ea6fbe8f964b423...7f1ac617dd14ce526aa3476e0a001a72e2ce37a9
>---------------------------------------------------------------
commit 21463e08ca745829569c2523755994373019d0ce
Author: Stephen Tu <tu.stephenl at gmail.com>
Date: Sat Jan 3 02:25:34 2015 -0800
cleanup sensing test
>---------------------------------------------------------------
21463e08ca745829569c2523755994373019d0ce
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