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 }
A preconditioner based on the digonal entries.
BiCGSTAB< _MatrixType, _Preconditioner > & setTolerance(const RealScalar &tolerance)
#define CALL_SUBTEST_3(FUNC)
bool bicgstab(const MatrixType &mat, const Rhs &rhs, Dest &x, const Preconditioner &precond, Index &iters, typename Dest::RealScalar &tol_error)
Definition: BiCGSTAB.h:29
void test_bicgstab_T()
Definition: bicgstab.cpp:13
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
Definition: NumTraits.h:232
EIGEN_DECLARE_TEST(bicgstab)
Definition: bicgstab.cpp:29
#define CALL_SUBTEST_1(FUNC)
Incomplete LU factorization with dual-threshold strategy.
Definition: IncompleteLUT.h:99
#define CALL_SUBTEST(FUNC)
Definition: main.h:399
A naive preconditioner which approximates any matrix as the identity matrix.
#define CALL_SUBTEST_2(FUNC)
A bi conjugate gradient stabilized solver for sparse square problems.
Definition: BiCGSTAB.h:113
void check_sparse_square_solving(Solver &solver, int maxSize=300, int maxRealWorldSize=100000, bool checkDeficient=false)


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:33:58