Remove dead code from CompressedRowSparseMatrix.
SolveLowerTriangularInPlace
SolveLowerTriangularTransposeInPlace
were unused functions which can be removed.
Change-Id: I0fd29c1efae2a0a74666f6e3541473bebc22ae82
diff --git a/internal/ceres/compressed_row_sparse_matrix.cc b/internal/ceres/compressed_row_sparse_matrix.cc
index dceb3bc..225aabf 100644
--- a/internal/ceres/compressed_row_sparse_matrix.cc
+++ b/internal/ceres/compressed_row_sparse_matrix.cc
@@ -378,26 +378,6 @@
values_.resize(num_nonzeros);
}
-void CompressedRowSparseMatrix::SolveLowerTriangularInPlace(
- double* solution) const {
- for (int r = 0; r < num_rows_; ++r) {
- for (int idx = rows_[r]; idx < rows_[r + 1] - 1; ++idx) {
- solution[r] -= values_[idx] * solution[cols_[idx]];
- }
- solution[r] /= values_[rows_[r + 1] - 1];
- }
-}
-
-void CompressedRowSparseMatrix::SolveLowerTriangularTransposeInPlace(
- double* solution) const {
- for (int r = num_rows_ - 1; r >= 0; --r) {
- solution[r] /= values_[rows_[r + 1] - 1];
- for (int idx = rows_[r + 1] - 2; idx >= rows_[r]; --idx) {
- solution[cols_[idx]] -= values_[idx] * solution[r];
- }
- }
-}
-
CompressedRowSparseMatrix* CompressedRowSparseMatrix::CreateBlockDiagonalMatrix(
const double* diagonal, const vector<int>& blocks) {
int num_rows = 0;
diff --git a/internal/ceres/compressed_row_sparse_matrix.h b/internal/ceres/compressed_row_sparse_matrix.h
index 9759d13..6c069ab 100644
--- a/internal/ceres/compressed_row_sparse_matrix.h
+++ b/internal/ceres/compressed_row_sparse_matrix.h
@@ -109,9 +109,6 @@
void ToCRSMatrix(CRSMatrix* matrix) const;
- void SolveLowerTriangularInPlace(double* solution) const;
- void SolveLowerTriangularTransposeInPlace(double* solution) const;
-
CompressedRowSparseMatrix* Transpose() const;
// Destructive array resizing method.
diff --git a/internal/ceres/compressed_row_sparse_matrix_test.cc b/internal/ceres/compressed_row_sparse_matrix_test.cc
index cc5ed08..ddaa8cc 100644
--- a/internal/ceres/compressed_row_sparse_matrix_test.cc
+++ b/internal/ceres/compressed_row_sparse_matrix_test.cc
@@ -308,61 +308,6 @@
EXPECT_EQ((dense.diagonal() - diagonal).norm(), 0.0);
}
-class SolveLowerTriangularTest : public ::testing::Test {
- protected:
- void SetUp() {
- matrix_.reset(new CompressedRowSparseMatrix(4, 4, 7));
- int* rows = matrix_->mutable_rows();
- int* cols = matrix_->mutable_cols();
- double* values = matrix_->mutable_values();
-
- rows[0] = 0;
- cols[0] = 0;
- values[0] = 0.50754;
-
- rows[1] = 1;
- cols[1] = 1;
- values[1] = 0.80483;
-
- rows[2] = 2;
- cols[2] = 1;
- values[2] = 0.14120;
- cols[3] = 2;
- values[3] = 0.3;
-
- rows[3] = 4;
- cols[4] = 0;
- values[4] = 0.77696;
- cols[5] = 1;
- values[5] = 0.41860;
- cols[6] = 3;
- values[6] = 0.88979;
-
- rows[4] = 7;
- }
-
- scoped_ptr<CompressedRowSparseMatrix> matrix_;
-};
-
-TEST_F(SolveLowerTriangularTest, SolveInPlace) {
- double rhs_and_solution[] = {1.0, 1.0, 2.0, 2.0};
- double expected[] = {1.970288, 1.242498, 6.081864, -0.057255};
- matrix_->SolveLowerTriangularInPlace(rhs_and_solution);
- for (int i = 0; i < 4; ++i) {
- EXPECT_NEAR(rhs_and_solution[i], expected[i], 1e-4) << i;
- }
-}
-
-TEST_F(SolveLowerTriangularTest, TransposeSolveInPlace) {
- double rhs_and_solution[] = {1.0, 1.0, 2.0, 2.0};
- const double expected[] = { -1.4706, -1.0962, 6.6667, 2.2477};
-
- matrix_->SolveLowerTriangularTransposeInPlace(rhs_and_solution);
- for (int i = 0; i < 4; ++i) {
- EXPECT_NEAR(rhs_and_solution[i], expected[i], 1e-4) << i;
- }
-}
-
TEST(CompressedRowSparseMatrix, Transpose) {
// 0 1 0 2 3 0
// 4 6 7 0 0 8
diff --git a/internal/ceres/dynamic_sparse_normal_cholesky_solver.cc b/internal/ceres/dynamic_sparse_normal_cholesky_solver.cc
index 2c893b4..89904e0 100644
--- a/internal/ceres/dynamic_sparse_normal_cholesky_solver.cc
+++ b/internal/ceres/dynamic_sparse_normal_cholesky_solver.cc
@@ -255,7 +255,7 @@
SuiteSparse ss;
const int num_cols = A->num_cols();
- cholmod_sparse lhs = ss.CreateSparseMatrixTransposeView(A, 0);
+ cholmod_sparse lhs = ss.CreateSparseMatrixTransposeView(A);
event_logger.AddEvent("Setup");
cholmod_factor* factor = ss.AnalyzeCholesky(&lhs, &summary.message);
event_logger.AddEvent("Analysis");