gtsam
3rdparty
Eigen
test
cholmod_support.cpp
Go to the documentation of this file.
1
// This file is part of Eigen, a lightweight C++ template library
2
// for linear algebra.
3
//
4
// Copyright (C) 2011 Gael Guennebaud <g.gael@free.fr>
5
//
6
// This Source Code Form is subject to the terms of the Mozilla
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/.
9
10
#define EIGEN_NO_DEBUG_SMALL_PRODUCT_BLOCKS
11
#include "
sparse_solver.h
"
12
13
#include <Eigen/CholmodSupport>
14
15
template
<
typename
SparseType>
void
test_cholmod_ST
()
16
{
17
CholmodDecomposition<SparseType, Lower>
g_chol_colmajor_lower; g_chol_colmajor_lower.
setMode
(
CholmodSupernodalLLt
);
18
CholmodDecomposition<SparseType, Upper>
g_chol_colmajor_upper; g_chol_colmajor_upper.
setMode
(
CholmodSupernodalLLt
);
19
CholmodDecomposition<SparseType, Lower>
g_llt_colmajor_lower; g_llt_colmajor_lower.
setMode
(
CholmodSimplicialLLt
);
20
CholmodDecomposition<SparseType, Upper>
g_llt_colmajor_upper; g_llt_colmajor_upper.
setMode
(
CholmodSimplicialLLt
);
21
CholmodDecomposition<SparseType, Lower>
g_ldlt_colmajor_lower; g_ldlt_colmajor_lower.
setMode
(
CholmodLDLt
);
22
CholmodDecomposition<SparseType, Upper>
g_ldlt_colmajor_upper; g_ldlt_colmajor_upper.
setMode
(
CholmodLDLt
);
23
24
CholmodSupernodalLLT<SparseType, Lower>
chol_colmajor_lower;
25
CholmodSupernodalLLT<SparseType, Upper>
chol_colmajor_upper;
26
CholmodSimplicialLLT<SparseType, Lower>
llt_colmajor_lower;
27
CholmodSimplicialLLT<SparseType, Upper>
llt_colmajor_upper;
28
CholmodSimplicialLDLT<SparseType, Lower>
ldlt_colmajor_lower;
29
CholmodSimplicialLDLT<SparseType, Upper>
ldlt_colmajor_upper;
30
31
check_sparse_spd_solving
(g_chol_colmajor_lower);
32
check_sparse_spd_solving
(g_chol_colmajor_upper);
33
check_sparse_spd_solving
(g_llt_colmajor_lower);
34
check_sparse_spd_solving
(g_llt_colmajor_upper);
35
check_sparse_spd_solving
(g_ldlt_colmajor_lower);
36
check_sparse_spd_solving
(g_ldlt_colmajor_upper);
37
38
check_sparse_spd_solving
(chol_colmajor_lower);
39
check_sparse_spd_solving
(chol_colmajor_upper);
40
check_sparse_spd_solving
(llt_colmajor_lower);
41
check_sparse_spd_solving
(llt_colmajor_upper);
42
check_sparse_spd_solving
(ldlt_colmajor_lower);
43
check_sparse_spd_solving
(ldlt_colmajor_upper);
44
45
check_sparse_spd_determinant
(chol_colmajor_lower);
46
check_sparse_spd_determinant
(chol_colmajor_upper);
47
check_sparse_spd_determinant
(llt_colmajor_lower);
48
check_sparse_spd_determinant
(llt_colmajor_upper);
49
check_sparse_spd_determinant
(ldlt_colmajor_lower);
50
check_sparse_spd_determinant
(ldlt_colmajor_upper);
51
}
52
53
template
<
typename
T,
int
flags,
typename
IdxType>
void
test_cholmod_T
()
54
{
55
test_cholmod_ST<SparseMatrix<T, flags, IdxType> >();
56
}
57
58
EIGEN_DECLARE_TEST
(cholmod_support)
59
{
60
CALL_SUBTEST_11
( (test_cholmod_T<double , ColMajor, int >()) );
61
CALL_SUBTEST_12
( (test_cholmod_T<double , ColMajor, long>()) );
62
CALL_SUBTEST_13
( (test_cholmod_T<double , RowMajor, int >()) );
63
CALL_SUBTEST_14
( (test_cholmod_T<double , RowMajor, long>()) );
64
CALL_SUBTEST_21
( (
test_cholmod_T
<std::complex<double>,
ColMajor
,
int
>()) );
65
CALL_SUBTEST_22
( (
test_cholmod_T
<std::complex<double>,
ColMajor
,
long
>()) );
66
// TODO complex row-major matrices do not work at the moment:
67
// CALL_SUBTEST_23( (test_cholmod_T<std::complex<double>, RowMajor, int >()) );
68
// CALL_SUBTEST_24( (test_cholmod_T<std::complex<double>, RowMajor, long>()) );
69
}
Eigen::CholmodDecomposition::setMode
void setMode(CholmodMode mode)
Definition:
CholmodSupport.h:647
CALL_SUBTEST_22
#define CALL_SUBTEST_22(FUNC)
Definition:
split_test_helper.h:130
CALL_SUBTEST_11
#define CALL_SUBTEST_11(FUNC)
Definition:
split_test_helper.h:64
Eigen::CholmodSimplicialLDLT
A simplicial direct Cholesky (LDLT) factorization and solver based on Cholmod.
Definition:
CholmodSupport.h:528
test_cholmod_ST
void test_cholmod_ST()
Definition:
cholmod_support.cpp:15
CALL_SUBTEST_21
#define CALL_SUBTEST_21(FUNC)
Definition:
split_test_helper.h:124
CALL_SUBTEST_13
#define CALL_SUBTEST_13(FUNC)
Definition:
split_test_helper.h:76
check_sparse_spd_determinant
void check_sparse_spd_determinant(Solver &solver)
Definition:
sparse_solver.h:489
Eigen::CholmodSupernodalLLT
A supernodal Cholesky (LLT) factorization and solver based on Cholmod.
Definition:
CholmodSupport.h:577
check_sparse_spd_solving
void check_sparse_spd_solving(Solver &solver, int maxSize=(std::min)(300, EIGEN_TEST_MAX_SIZE), int maxRealWorldSize=100000)
Definition:
sparse_solver.h:404
sparse_solver.h
EIGEN_DECLARE_TEST
EIGEN_DECLARE_TEST(cholmod_support)
Definition:
cholmod_support.cpp:58
CALL_SUBTEST_12
#define CALL_SUBTEST_12(FUNC)
Definition:
split_test_helper.h:70
Eigen::CholmodSimplicialLLT
A simplicial direct Cholesky (LLT) factorization and solver based on Cholmod.
Definition:
CholmodSupport.h:477
test_cholmod_T
void test_cholmod_T()
Definition:
cholmod_support.cpp:53
Eigen::CholmodSupernodalLLt
@ CholmodSupernodalLLt
Definition:
CholmodSupport.h:204
Eigen::CholmodSimplicialLLt
@ CholmodSimplicialLLt
Definition:
CholmodSupport.h:204
Eigen::ColMajor
@ ColMajor
Definition:
Constants.h:319
CALL_SUBTEST_14
#define CALL_SUBTEST_14(FUNC)
Definition:
split_test_helper.h:82
Eigen::CholmodLDLt
@ CholmodLDLt
Definition:
CholmodSupport.h:204
Eigen::CholmodDecomposition
A general Cholesky factorization and solver based on Cholmod.
Definition:
CholmodSupport.h:628
gtsam
Author(s):
autogenerated on Fri Nov 1 2024 03:32:05