Class for computing matrix functions. More...
#include <MatrixFunction.h>
Public Member Functions | |
template<typename ResultType > | |
void | compute (ResultType &result) |
Compute the matrix function. More... | |
MatrixFunction (const MatrixType &A, AtomicType &atomic) | |
Constructor. More... | |
Class for computing matrix functions.
MatrixType | type of the argument of the matrix function, expected to be an instantiation of the Matrix class template. |
AtomicType | type for computing matrix function of atomic blocks. |
IsComplex | used internally to select correct specialization. |
This class implements the Schur-Parlett algorithm for computing matrix functions. The spectrum of the matrix is divided in clustered of eigenvalues that lies close together. This class delegates the computation of the matrix function on every block corresponding to these clusters to an object of type AtomicType
and uses these results to compute the matrix function of the whole matrix. The class AtomicType
should have a compute()
member function for computing the matrix function of a block.
Definition at line 37 of file MatrixFunction.h.
Eigen::MatrixFunction< MatrixType, AtomicType, IsComplex >::MatrixFunction | ( | const MatrixType & | A, |
AtomicType & | atomic | ||
) |
Constructor.
[in] | A | argument of matrix function, should be a square matrix. |
[in] | atomic | class for computing matrix function of atomic blocks. |
The class stores references to A
and atomic
, so they should not be changed (or destroyed) before compute() is called.
void Eigen::MatrixFunction< MatrixType, AtomicType, IsComplex >::compute | ( | ResultType & | result | ) |
Compute the matrix function.
[out] | result | the function f applied to A , as specified in the constructor. |
See MatrixBase::matrixFunction() for details on how this computation is implemented.