
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 members:
 - the nested types \c Scalar, \c RealScalar and \c StorageIndex
 - the constants \c ColsAtCompileTime, \c MaxColsAtCompileTime and \c IsRowMajor
 - \c Index \c rows() and \c Index \c cols(): returns number of rows and columns respectively
 - \c operator* with your type and an %Eigen dense column vector (its actual implementation goes in a specialization of the internal::generic_product_impl class)

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

Here is a complete example wrapping an Eigen::SparseMatrix:
\include matrixfree_cg.cpp
Output: \verbinclude matrixfree_cg.out

*/

}