1// This file is part of Eigen, a lightweight C++ template library
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/.
8#ifndef EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
9#define EIGEN_ITERATIVELINEARSOLVERS_MODULE_H
12#include "OrderingMethods"
14#include "src/Core/util/DisableStupidWarnings.h"
17 * \defgroup IterativeLinearSolvers_Module IterativeLinearSolvers module
19 * This module currently provides iterative methods to solve problems of the form \c A \c x = \c b, where \c A is a
20 squared matrix, usually very large and sparse.
21 * Those solvers are accessible via the following classes:
22 * - ConjugateGradient for selfadjoint (hermitian) matrices,
23 * - LeastSquaresConjugateGradient for rectangular least-square problems,
24 * - BiCGSTAB for general square matrices.
26 * These iterative solvers are associated with some preconditioners:
27 * - IdentityPreconditioner - not really useful
28 * - DiagonalPreconditioner - also called Jacobi preconditioner, work very well on diagonal dominant matrices.
29 * - IncompleteLUT - incomplete LU factorization with dual thresholding
31 * Such problems can also be solved using the direct sparse decomposition modules: SparseCholesky, CholmodSupport,
32 UmfPackSupport, SuperLUSupport, AccelerateSupport.
35 #include <Eigen/IterativeLinearSolvers>
39// IWYU pragma: begin_exports
40#include "src/IterativeLinearSolvers/SolveWithGuess.h"
41#include "src/IterativeLinearSolvers/IterativeSolverBase.h"
42#include "src/IterativeLinearSolvers/BasicPreconditioners.h"
43#include "src/IterativeLinearSolvers/ConjugateGradient.h"
44#include "src/IterativeLinearSolvers/LeastSquareConjugateGradient.h"
45#include "src/IterativeLinearSolvers/BiCGSTAB.h"
46#include "src/IterativeLinearSolvers/IncompleteLUT.h"
47#include "src/IterativeLinearSolvers/IncompleteCholesky.h"
48// IWYU pragma: end_exports
50#include "src/Core/util/ReenableStupidWarnings.h"
52#endif // EIGEN_ITERATIVELINEARSOLVERS_MODULE_H