Fix solver_test.cc When Eigen is not installed, Solver::IsValid was not detecting it correctly. Change-Id: Id285a84d829a9e20bc5de663adfca66ac31e08f3
diff --git a/internal/ceres/solver.cc b/internal/ceres/solver.cc index 5e1a5d2..e5ad90e 100644 --- a/internal/ceres/solver.cc +++ b/internal/ceres/solver.cc
@@ -202,6 +202,24 @@ } #endif +#ifndef CERES_USE_EIGEN_SPARSE + if (options.sparse_linear_algebra_library_type == EIGEN_SPARSE) { + if (options.linear_solver_type == SPARSE_NORMAL_CHOLESKY) { + *error = "Can't use SPARSE_NORMAL_CHOLESKY with EIGEN_SPARSE because " + "Eigen's sparse linear algebra was not enabled when Ceres " + " was built."; + return false; + } + + if (options.linear_solver_type == SPARSE_SCHUR) { + *error = "Can't use SPARSE_SCHUR with EIGEN_SPARSE because " + "Eigen's sparse linear algebra was not enabled when Ceres " + " was built."; + return false; + } + } +#endif + if (options.trust_region_strategy_type == DOGLEG) { if (options.linear_solver_type == ITERATIVE_SCHUR || options.linear_solver_type == CGNR) {