source: pacpussensors/trunk/Vislab/lib3dv-1.2.0/lib3dv/eigen/test/conjugate_gradient.cpp

Last change on this file was 136, checked in by ldecherf, 8 years ago

Doc

File size: 1.4 KB
Line 
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
13template<typename T> void test_conjugate_gradient_T()
14{
15 ConjugateGradient<SparseMatrix<T>, Lower > cg_colmajor_lower_diag;
16 ConjugateGradient<SparseMatrix<T>, Upper > cg_colmajor_upper_diag;
17 ConjugateGradient<SparseMatrix<T>, Lower|Upper> cg_colmajor_loup_diag;
18 ConjugateGradient<SparseMatrix<T>, Lower, IdentityPreconditioner> cg_colmajor_lower_I;
19 ConjugateGradient<SparseMatrix<T>, Upper, IdentityPreconditioner> cg_colmajor_upper_I;
20
21 CALL_SUBTEST( check_sparse_spd_solving(cg_colmajor_lower_diag) );
22 CALL_SUBTEST( check_sparse_spd_solving(cg_colmajor_upper_diag) );
23 CALL_SUBTEST( check_sparse_spd_solving(cg_colmajor_loup_diag) );
24 CALL_SUBTEST( check_sparse_spd_solving(cg_colmajor_lower_I) );
25 CALL_SUBTEST( check_sparse_spd_solving(cg_colmajor_upper_I) );
26}
27
28void test_conjugate_gradient()
29{
30 CALL_SUBTEST_1(test_conjugate_gradient_T<double>());
31 CALL_SUBTEST_2(test_conjugate_gradient_T<std::complex<double> >());
32}
Note: See TracBrowser for help on using the repository browser.