20 lines
		
	
	
		
			758 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			758 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
| 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:
 | |
|  - \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
 | |
| 
 | |
| */
 | |
| 
 | |
| } | 
