gtsam
3rdparty
Eigen
test
conjugate_gradient.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
#include "
sparse_solver.h
"
11
#include <Eigen/IterativeLinearSolvers>
12
13
template
<
typename
T,
typename
I_>
void
test_conjugate_gradient_T
()
14
{
15
typedef
SparseMatrix<T,0,I_>
SparseMatrixType;
16
ConjugateGradient<SparseMatrixType, Lower >
cg_colmajor_lower_diag;
17
ConjugateGradient<SparseMatrixType, Upper >
cg_colmajor_upper_diag;
18
ConjugateGradient<SparseMatrixType, Lower|Upper>
cg_colmajor_loup_diag;
19
ConjugateGradient<SparseMatrixType, Lower, IdentityPreconditioner>
cg_colmajor_lower_I;
20
ConjugateGradient<SparseMatrixType, Upper, IdentityPreconditioner>
cg_colmajor_upper_I;
21
22
CALL_SUBTEST
(
check_sparse_spd_solving
(cg_colmajor_lower_diag) );
23
CALL_SUBTEST
(
check_sparse_spd_solving
(cg_colmajor_upper_diag) );
24
CALL_SUBTEST
(
check_sparse_spd_solving
(cg_colmajor_loup_diag) );
25
CALL_SUBTEST
(
check_sparse_spd_solving
(cg_colmajor_lower_I) );
26
CALL_SUBTEST
(
check_sparse_spd_solving
(cg_colmajor_upper_I) );
27
}
28
29
EIGEN_DECLARE_TEST
(
conjugate_gradient
)
30
{
31
CALL_SUBTEST_1
(( test_conjugate_gradient_T<double,int>() ));
32
CALL_SUBTEST_2
((
test_conjugate_gradient_T
<std::complex<double>,
int
>() ));
33
CALL_SUBTEST_3
(( test_conjugate_gradient_T<double,long int>() ));
34
}
Eigen::SparseMatrix
A versatible sparse matrix representation.
Definition:
SparseMatrix.h:96
EIGEN_DECLARE_TEST
EIGEN_DECLARE_TEST(conjugate_gradient)
Definition:
conjugate_gradient.cpp:29
CALL_SUBTEST_3
#define CALL_SUBTEST_3(FUNC)
Definition:
split_test_helper.h:16
CALL_SUBTEST_1
#define CALL_SUBTEST_1(FUNC)
Definition:
split_test_helper.h:4
Eigen::ConjugateGradient
A conjugate gradient solver for sparse (or dense) self-adjoint problems.
Definition:
ConjugateGradient.h:97
test_conjugate_gradient_T
void test_conjugate_gradient_T()
Definition:
conjugate_gradient.cpp:13
CALL_SUBTEST_2
#define CALL_SUBTEST_2(FUNC)
Definition:
split_test_helper.h:10
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::internal::conjugate_gradient
EIGEN_DONT_INLINE void conjugate_gradient(const MatrixType &mat, const Rhs &rhs, Dest &x, const Preconditioner &precond, Index &iters, typename Dest::RealScalar &tol_error)
Definition:
ConjugateGradient.h:28
CALL_SUBTEST
#define CALL_SUBTEST(FUNC)
Definition:
main.h:399
gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:11:17