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 (its actual implementation goes in a specialization of the internal::generic_product_impl class) Eigen::internal::traits<> must also be specialized for the wrapper type. Here is a complete example wrapping a Eigen::SparseMatrix: \include matrixfree_cg.cpp Output: \verbinclude matrixfree_cg.out */ }