diff options
author | Desire NUENTSA <desire.nuentsa_wakam@inria.fr> | 2012-08-06 14:55:02 +0200 |
---|---|---|
committer | Desire NUENTSA <desire.nuentsa_wakam@inria.fr> | 2012-08-06 14:55:02 +0200 |
commit | 4d3b7e2a1351d60b9ee26d0fe3442cd5b3a1f8a9 (patch) | |
tree | 8ad3484157af2e83be037c40634ba58d29a00720 /bench/spbench | |
parent | a51806993b1a437af308db9c6893cab71e7ca814 (diff) |
Add support for Metis fill-reducing ordering ; it is generally more efficient than COLAMD ordering
Diffstat (limited to 'bench/spbench')
-rw-r--r-- | bench/spbench/CMakeLists.txt | 6 | ||||
-rw-r--r-- | bench/spbench/test_sparseLU.cpp | 8 |
2 files changed, 14 insertions, 0 deletions
diff --git a/bench/spbench/CMakeLists.txt b/bench/spbench/CMakeLists.txt index a093cc5d9..2eb0befa9 100644 --- a/bench/spbench/CMakeLists.txt +++ b/bench/spbench/CMakeLists.txt @@ -66,5 +66,11 @@ target_link_libraries (spbenchsolver ${SPARSE_LIBS}) add_executable(spsolver sp_solver.cpp) target_link_libraries (spsolver ${SPARSE_LIBS}) +if(METIS_FOUND) + include_directories(${METIS_INCLUDES}) + set (SPARSE_LIBS ${SPARSE_LIBS} ${METIS_LIBRARIES}) + add_definitions("-DEIGEN_METIS_SUPPORT") +endif(METIS_FOUND) + add_executable(test_sparseLU test_sparseLU.cpp) target_link_libraries (test_sparseLU ${SPARSE_LIBS}) diff --git a/bench/spbench/test_sparseLU.cpp b/bench/spbench/test_sparseLU.cpp index 59f8252d0..8c78b0c9b 100644 --- a/bench/spbench/test_sparseLU.cpp +++ b/bench/spbench/test_sparseLU.cpp @@ -7,6 +7,9 @@ #include <unsupported/Eigen/SparseExtra> #include <Eigen/SparseLU> #include <bench/BenchTimer.h> +#ifdef EIGEN_METIS_SUPPORT +#include <Eigen/MetisSupport> +#endif using namespace std; using namespace Eigen; @@ -21,7 +24,12 @@ int main(int argc, char **args) typedef Matrix<scalar, Dynamic, 1> DenseRhs; Matrix<scalar, Dynamic, 1> b, x, tmp; // SparseLU<SparseMatrix<scalar, ColMajor>, AMDOrdering<int> > solver; +#ifdef EIGEN_METIS_SUPPORT + SparseLU<SparseMatrix<scalar, ColMajor>, MetisOrdering<int> > solver; +#else SparseLU<SparseMatrix<scalar, ColMajor>, COLAMDOrdering<int> > solver; +#endif + ifstream matrix_file; string line; int n; |