blob: 957d5750b2cd6f9a429c7140335487a4d8b87b25 [file] [log] [blame]
Austin Schuh189376f2018-12-20 22:11:15 +11001// This file is part of Eigen, a lightweight C++ template library
2// for linear algebra.
3//
4// This Source Code Form is subject to the terms of the Mozilla
5// Public License v. 2.0. If a copy of the MPL was not distributed
6// with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
Brian Silverman72890c22015-09-19 14:37:37 -04008#ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
9#define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
10
11#include "SparseCore"
12#include "OrderingMethods"
13
14#include "src/Core/util/DisableStupidWarnings.h"
15
16/**
17 * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module
18 *
19 * This module currently provides iterative methods to solve problems of the form \c A \c x = \c b, where \c A is a squared matrix, usually very large and sparse.
20 * Those solvers are accessible via the following classes:
21 * - ConjugateGradient for selfadjoint (hermitian) matrices,
Austin Schuh189376f2018-12-20 22:11:15 +110022 * - LeastSquaresConjugateGradient for rectangular least-square problems,
Brian Silverman72890c22015-09-19 14:37:37 -040023 * - BiCGSTAB for general square matrices.
24 *
25 * These iterative solvers are associated with some preconditioners:
26 * - IdentityPreconditioner - not really useful
Austin Schuh189376f2018-12-20 22:11:15 +110027 * - DiagonalPreconditioner - also called Jacobi preconditioner, work very well on diagonal dominant matrices.
28 * - IncompleteLUT - incomplete LU factorization with dual thresholding
Brian Silverman72890c22015-09-19 14:37:37 -040029 *
30 * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport, UmfPackSupport, SuperLUSupport.
31 *
Austin Schuh189376f2018-12-20 22:11:15 +110032 \code
33 #include <Eigen/IterativeLinearSolvers>
34 \endcode
Brian Silverman72890c22015-09-19 14:37:37 -040035 */
36
Austin Schuh189376f2018-12-20 22:11:15 +110037#include "src/IterativeLinearSolvers/SolveWithGuess.h"
Brian Silverman72890c22015-09-19 14:37:37 -040038#include "src/IterativeLinearSolvers/IterativeSolverBase.h"
39#include "src/IterativeLinearSolvers/BasicPreconditioners.h"
40#include "src/IterativeLinearSolvers/ConjugateGradient.h"
Austin Schuh189376f2018-12-20 22:11:15 +110041#include "src/IterativeLinearSolvers/LeastSquareConjugateGradient.h"
Brian Silverman72890c22015-09-19 14:37:37 -040042#include "src/IterativeLinearSolvers/BiCGSTAB.h"
43#include "src/IterativeLinearSolvers/IncompleteLUT.h"
Austin Schuh189376f2018-12-20 22:11:15 +110044#include "src/IterativeLinearSolvers/IncompleteCholesky.h"
Brian Silverman72890c22015-09-19 14:37:37 -040045
46#include "src/Core/util/ReenableStupidWarnings.h"
47
48#endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H