Lines 7-23
Link Here
|
7 |
// Public License v. 2.0. If a copy of the MPL was not distributed |
7 |
// Public License v. 2.0. If a copy of the MPL was not distributed |
8 |
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. |
8 |
// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. |
9 |
|
9 |
|
10 |
#define EIGEN_NO_DEBUG_SMALL_PRODUCT_BLOCKS |
10 |
#define EIGEN_NO_DEBUG_SMALL_PRODUCT_BLOCKS |
11 |
#include "sparse_solver.h" |
11 |
#include "sparse_solver.h" |
12 |
|
12 |
|
13 |
#include <Eigen/CholmodSupport> |
13 |
#include <Eigen/CholmodSupport> |
14 |
|
14 |
|
15 |
template<typename T> void test_cholmod_T() |
15 |
template<typename T> void test1_cholmod_T() |
16 |
{ |
16 |
{ |
17 |
CholmodDecomposition<SparseMatrix<T>, Lower> g_chol_colmajor_lower; g_chol_colmajor_lower.setMode(CholmodSupernodalLLt); |
17 |
CholmodDecomposition<SparseMatrix<T>, Lower> g_chol_colmajor_lower; g_chol_colmajor_lower.setMode(CholmodSupernodalLLt); |
18 |
CholmodDecomposition<SparseMatrix<T>, Upper> g_chol_colmajor_upper; g_chol_colmajor_upper.setMode(CholmodSupernodalLLt); |
18 |
CholmodDecomposition<SparseMatrix<T>, Upper> g_chol_colmajor_upper; g_chol_colmajor_upper.setMode(CholmodSupernodalLLt); |
19 |
CholmodDecomposition<SparseMatrix<T>, Lower> g_llt_colmajor_lower; g_llt_colmajor_lower.setMode(CholmodSimplicialLLt); |
19 |
CholmodDecomposition<SparseMatrix<T>, Lower> g_llt_colmajor_lower; g_llt_colmajor_lower.setMode(CholmodSimplicialLLt); |
20 |
CholmodDecomposition<SparseMatrix<T>, Upper> g_llt_colmajor_upper; g_llt_colmajor_upper.setMode(CholmodSimplicialLLt); |
20 |
CholmodDecomposition<SparseMatrix<T>, Upper> g_llt_colmajor_upper; g_llt_colmajor_upper.setMode(CholmodSimplicialLLt); |
21 |
CholmodDecomposition<SparseMatrix<T>, Lower> g_ldlt_colmajor_lower; g_ldlt_colmajor_lower.setMode(CholmodLDLt); |
21 |
CholmodDecomposition<SparseMatrix<T>, Lower> g_ldlt_colmajor_lower; g_ldlt_colmajor_lower.setMode(CholmodLDLt); |
22 |
CholmodDecomposition<SparseMatrix<T>, Upper> g_ldlt_colmajor_upper; g_ldlt_colmajor_upper.setMode(CholmodLDLt); |
22 |
CholmodDecomposition<SparseMatrix<T>, Upper> g_ldlt_colmajor_upper; g_ldlt_colmajor_upper.setMode(CholmodLDLt); |
23 |
|
23 |
|
Lines 36-57
template<typename T> void test_cholmod_T
Link Here
|
36 |
check_sparse_spd_solving(g_ldlt_colmajor_upper); |
36 |
check_sparse_spd_solving(g_ldlt_colmajor_upper); |
37 |
|
37 |
|
38 |
check_sparse_spd_solving(chol_colmajor_lower); |
38 |
check_sparse_spd_solving(chol_colmajor_lower); |
39 |
check_sparse_spd_solving(chol_colmajor_upper); |
39 |
check_sparse_spd_solving(chol_colmajor_upper); |
40 |
check_sparse_spd_solving(llt_colmajor_lower); |
40 |
check_sparse_spd_solving(llt_colmajor_lower); |
41 |
check_sparse_spd_solving(llt_colmajor_upper); |
41 |
check_sparse_spd_solving(llt_colmajor_upper); |
42 |
check_sparse_spd_solving(ldlt_colmajor_lower); |
42 |
check_sparse_spd_solving(ldlt_colmajor_lower); |
43 |
check_sparse_spd_solving(ldlt_colmajor_upper); |
43 |
check_sparse_spd_solving(ldlt_colmajor_upper); |
44 |
|
44 |
} |
45 |
// check_sparse_spd_determinant(chol_colmajor_lower); |
45 |
|
46 |
// check_sparse_spd_determinant(chol_colmajor_upper); |
46 |
template<typename T> void test2_cholmod_T() |
47 |
// check_sparse_spd_determinant(llt_colmajor_lower); |
47 |
{ |
48 |
// check_sparse_spd_determinant(llt_colmajor_upper); |
48 |
test1_cholmod_T<T>(); |
49 |
// check_sparse_spd_determinant(ldlt_colmajor_lower); |
49 |
|
50 |
// check_sparse_spd_determinant(ldlt_colmajor_upper); |
50 |
CholmodSupernodalLLT<SparseMatrix<T>, Lower> chol_colmajor_lower; |
|
|
51 |
CholmodSupernodalLLT<SparseMatrix<T>, Upper> chol_colmajor_upper; |
52 |
CholmodSimplicialLLT<SparseMatrix<T>, Lower> llt_colmajor_lower; |
53 |
CholmodSimplicialLLT<SparseMatrix<T>, Upper> llt_colmajor_upper; |
54 |
CholmodSimplicialLDLT<SparseMatrix<T>, Lower> ldlt_colmajor_lower; |
55 |
CholmodSimplicialLDLT<SparseMatrix<T>, Upper> ldlt_colmajor_upper; |
56 |
|
57 |
check_sparse_spd_determinant(chol_colmajor_lower); |
58 |
check_sparse_spd_determinant(chol_colmajor_upper); |
59 |
check_sparse_spd_determinant(llt_colmajor_lower); |
60 |
check_sparse_spd_determinant(llt_colmajor_upper); |
61 |
check_sparse_spd_determinant(ldlt_colmajor_lower); |
62 |
check_sparse_spd_determinant(ldlt_colmajor_upper); |
51 |
} |
63 |
} |
52 |
|
64 |
|
53 |
void test_cholmod_support() |
65 |
void test_cholmod_support() |
54 |
{ |
66 |
{ |
55 |
CALL_SUBTEST_1(test_cholmod_T<double>()); |
67 |
CALL_SUBTEST_1(test2_cholmod_T<double>()); |
56 |
CALL_SUBTEST_2(test_cholmod_T<std::complex<double> >()); |
68 |
CALL_SUBTEST_2(test1_cholmod_T<std::complex<double> >()); |
57 |
} |
69 |
} |