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) {