bicgstab.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_bicgstab_T()
14 {
17  BiCGSTAB<SparseMatrix<T,0,I_>, IncompleteLUT<T,I_> > bicgstab_colmajor_ilut;
18  //BiCGSTAB<SparseMatrix<T>, SSORPreconditioner<T> > bicgstab_colmajor_ssor;
19 
20  bicgstab_colmajor_diag.setTolerance(NumTraits<T>::epsilon()*4);
21  bicgstab_colmajor_ilut.setTolerance(NumTraits<T>::epsilon()*4);
22 
23  CALL_SUBTEST( check_sparse_square_solving(bicgstab_colmajor_diag) );
24 // CALL_SUBTEST( check_sparse_square_solving(bicgstab_colmajor_I) );
25  CALL_SUBTEST( check_sparse_square_solving(bicgstab_colmajor_ilut) );
26  //CALL_SUBTEST( check_sparse_square_solving(bicgstab_colmajor_ssor) );
27 }
28 
30 {
31  CALL_SUBTEST_1((test_bicgstab_T<double,int>()) );
32  CALL_SUBTEST_2((test_bicgstab_T<std::complex<double>, int>()));
33  CALL_SUBTEST_3((test_bicgstab_T<double,long int>()));
34 }
Eigen::IncompleteLUT
Incomplete LU factorization with dual-threshold strategy.
Definition: IncompleteLUT.h:99
Eigen::internal::bicgstab
bool bicgstab(const MatrixType &mat, const Rhs &rhs, Dest &x, const Preconditioner &precond, Index &iters, typename Dest::RealScalar &tol_error)
Definition: BiCGSTAB.h:29
EIGEN_DECLARE_TEST
EIGEN_DECLARE_TEST(bicgstab)
Definition: bicgstab.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
CALL_SUBTEST_2
#define CALL_SUBTEST_2(FUNC)
Definition: split_test_helper.h:10
test_bicgstab_T
void test_bicgstab_T()
Definition: bicgstab.cpp:13
Eigen::IdentityPreconditioner
A naive preconditioner which approximates any matrix as the identity matrix.
Definition: BasicPreconditioners.h:200
Eigen::BiCGSTAB
A bi conjugate gradient stabilized solver for sparse square problems.
Definition: BiCGSTAB.h:113
sparse_solver.h
check_sparse_square_solving
void check_sparse_square_solving(Solver &solver, int maxSize=300, int maxRealWorldSize=100000, bool checkDeficient=false)
Definition: sparse_solver.h:534
Eigen::DiagonalPreconditioner
A preconditioner based on the digonal entries.
Definition: BasicPreconditioners.h:36
Eigen::NumTraits
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:232
CALL_SUBTEST
#define CALL_SUBTEST(FUNC)
Definition: main.h:399


gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:01:55