Provide optional METIS support

* Split `CERES_NO_METIS` into two defines: `CERES_NO_PARTITION` and
  `CERES_NO_METIS`. The former refers to METIS support in SuiteSparse,
  the latter to the Eigen's MetisSupport module. This enables the use of
  sparse matrix reordering independent from SuiteSparse.
* Run Linux, macOS, and macOS Github workflows with METIS enabled
  SuiteSparse.

Fixes #808

Change-Id: I5076b7e1268d32cc3e7e56650edcbaf7fb3b59ce
This commit is contained in:
Sergiu Deitsch
2022-05-15 22:26:18 +02:00
committed by Sameer Agarwal
parent f11c256265
commit 0c88301e66
16 changed files with 123 additions and 38 deletions
@@ -117,7 +117,7 @@ TEST_F(DynamicSparseNormalCholeskySolverTest, SuiteSparseAMD) {
TestSolver(SUITE_SPARSE, OrderingType::AMD);
}
#ifndef CERES_NO_METIS
#ifndef CERES_NO_CHOLMOD_PARTITION
TEST_F(DynamicSparseNormalCholeskySolverTest, SuiteSparseNESDIS) {
TestSolver(SUITE_SPARSE, OrderingType::NESDIS);
}
@@ -129,7 +129,7 @@ TEST_F(DynamicSparseNormalCholeskySolverTest, EigenAMD) {
TestSolver(EIGEN_SPARSE, OrderingType::AMD);
}
#ifndef CERES_NO_METIS
#ifndef CERES_NO_EIGEN_METIS
TEST_F(DynamicSparseNormalCholeskySolverTest, EigenNESDIS) {
TestSolver(EIGEN_SPARSE, OrderingType::NESDIS);
}