Build cleanup 1. Remove unused variable. 2. Make inner_product_computer compatible with older versions of Eigen, which don't have a named enum for Eigen::Upper/Lower. Change-Id: I927af297f93fc74f7f4b29b39e400ef2d75edbd4
diff --git a/internal/ceres/inner_product_computer.cc b/internal/ceres/inner_product_computer.cc index 052bd5a..83a48cd 100644 --- a/internal/ceres/inner_product_computer.cc +++ b/internal/ceres/inner_product_computer.cc
@@ -223,7 +223,6 @@ void InnerProductComputer::ComputeOffsetsAndCreateResultMatrix( const CompressedRowSparseMatrix::StorageType product_storage_type, const std::vector<InnerProductComputer::ProductTerm>& product_terms) { - const int num_cols = m_.num_cols(); const std::vector<Block>& col_blocks = m_.block_structure()->cols; std::vector<int> row_block_nnz;
diff --git a/internal/ceres/inner_product_computer_test.cc b/internal/ceres/inner_product_computer_test.cc index a4c81bc..fa667b1 100644 --- a/internal/ceres/inner_product_computer_test.cc +++ b/internal/ceres/inner_product_computer_test.cc
@@ -44,46 +44,38 @@ namespace ceres { namespace internal { -template <enum Eigen::UpLoType T> -void CompareTriangularPartOfMatrices(const Matrix& expected, - const Matrix& actual) { - EXPECT_EQ(actual.rows(), actual.cols()); - EXPECT_EQ(expected.rows(), expected.cols()); - EXPECT_EQ(actual.rows(), expected.rows()); - - const Matrix expected_t = expected.triangularView<T>(); - const Matrix actual_t = actual.triangularView<T>(); - - // TODO(sameeragarwal): Foo - CHECK_LE((expected_t - actual_t).norm() / actual_t.norm(), - 100 * std::numeric_limits<double>::epsilon()) - << "expected: \n" - << expected_t << "\nactual: \n" - << actual_t; -} - -#define COMPUTE_AND_COMPARE \ - { \ - inner_product_computer->Compute(); \ - CompressedRowSparseMatrix* actual_product_crsm = \ - inner_product_computer->mutable_result(); \ - Matrix actual_inner_product = \ - Eigen::MappedSparseMatrix<double, Eigen::ColMajor>( \ - actual_product_crsm->num_rows(), \ - actual_product_crsm->num_rows(), \ - actual_product_crsm->num_nonzeros(), \ - actual_product_crsm->mutable_rows(), \ - actual_product_crsm->mutable_cols(), \ - actual_product_crsm->mutable_values()); \ - (actual_product_crsm->storage_type() == \ - CompressedRowSparseMatrix::LOWER_TRIANGULAR) \ - ? CompareTriangularPartOfMatrices<Eigen::Upper>( \ - expected_inner_product, actual_inner_product) \ - : CompareTriangularPartOfMatrices<Eigen::Lower>( \ - expected_inner_product, actual_inner_product); \ +#define COMPUTE_AND_COMPARE \ + { \ + inner_product_computer->Compute(); \ + CompressedRowSparseMatrix* actual_product_crsm = \ + inner_product_computer->mutable_result(); \ + Matrix actual_inner_product = \ + Eigen::MappedSparseMatrix<double, Eigen::ColMajor>( \ + actual_product_crsm->num_rows(), \ + actual_product_crsm->num_rows(), \ + actual_product_crsm->num_nonzeros(), \ + actual_product_crsm->mutable_rows(), \ + actual_product_crsm->mutable_cols(), \ + actual_product_crsm->mutable_values()); \ + EXPECT_EQ(actual_inner_product.rows(), actual_inner_product.cols()); \ + EXPECT_EQ(expected_inner_product.rows(), expected_inner_product.cols()); \ + EXPECT_EQ(actual_inner_product.rows(), expected_inner_product.rows()); \ + Matrix expected_t, actual_t; \ + if (actual_product_crsm->storage_type() == \ + CompressedRowSparseMatrix::LOWER_TRIANGULAR) { \ + expected_t = expected_inner_product.triangularView<Eigen::Upper>(); \ + actual_t = actual_inner_product.triangularView<Eigen::Upper>(); \ + } else { \ + expected_t = expected_inner_product.triangularView<Eigen::Lower>(); \ + actual_t = actual_inner_product.triangularView<Eigen::Lower>(); \ + } \ + EXPECT_LE((expected_t - actual_t).norm() / actual_t.norm(), \ + 100 * std::numeric_limits<double>::epsilon()) \ + << "expected: \n" \ + << expected_t << "\nactual: \n" \ + << actual_t; \ } - TEST(InnerProductComputer, NormalOperation) { // "Randomly generated seed." SetRandomState(29823);