summaryrefslogtreecommitdiffhomepage
path: root/eigen/doc/MatrixfreeSolverExample.dox
blob: 9921c726143ef52e9d035e91d665d62fd4fc52f2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

namespace Eigen {

/**

\eigenManualPage MatrixfreeSolverExample Matrix-free solvers

Iterative solvers such as ConjugateGradient and BiCGSTAB can be used in a matrix free context. To this end, user must provide a wrapper class inheriting EigenBase<> and implementing the following methods:
 - Index rows() and Index cols(): returns number of rows and columns respectively
 - operator* with and Eigen dense column vector
 - resize(rows,cols): needed for source compatibility (can stay empty)

Eigen::internal::traits<> must also be specialized for the wrapper type.

For efficiency purpose, one might also want to provide a custom preconditioner. Here is an example using ConjugateGradient and implementing also a custom Jacobi preconditioner:
\include matrixfree_cg.cpp
Output: \verbinclude matrixfree_cg.out

*/

}