Class for computing matrix square roots of upper quasi-triangular matrices. More...
#include <MatrixSquareRoot.h>
Public Member Functions | |
template<typename ResultType > | |
void | compute (ResultType &result) |
Compute the matrix square root. | |
MatrixSquareRootQuasiTriangular (const MatrixType &A) | |
Constructor. | |
Private Types | |
typedef MatrixType::Index | Index |
typedef MatrixType::Scalar | Scalar |
Private Member Functions | |
void | compute1x1offDiagonalBlock (MatrixType &sqrtT, const MatrixType &T, typename MatrixType::Index i, typename MatrixType::Index j) |
void | compute1x2offDiagonalBlock (MatrixType &sqrtT, const MatrixType &T, typename MatrixType::Index i, typename MatrixType::Index j) |
void | compute2x1offDiagonalBlock (MatrixType &sqrtT, const MatrixType &T, typename MatrixType::Index i, typename MatrixType::Index j) |
void | compute2x2diagonalBlock (MatrixType &sqrtT, const MatrixType &T, typename MatrixType::Index i) |
void | compute2x2offDiagonalBlock (MatrixType &sqrtT, const MatrixType &T, typename MatrixType::Index i, typename MatrixType::Index j) |
void | computeDiagonalPartOfSqrt (MatrixType &sqrtT, const MatrixType &T) |
void | computeOffDiagonalPartOfSqrt (MatrixType &sqrtT, const MatrixType &T) |
Static Private Member Functions | |
template<typename SmallMatrixType > | |
static void | solveAuxiliaryEquation (SmallMatrixType &X, const SmallMatrixType &A, const SmallMatrixType &B, const SmallMatrixType &C) |
Private Attributes | |
const MatrixType & | m_A |
Class for computing matrix square roots of upper quasi-triangular matrices.
MatrixType | type of the argument of the matrix square root, expected to be an instantiation of the Matrix class template. |
This class computes the square root of the upper quasi-triangular matrix stored in the upper Hessenberg part of the matrix passed to the constructor.
Definition at line 27 of file MatrixSquareRoot.h.
typedef MatrixType::Index Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::Index [private] |
Definition at line 56 of file MatrixSquareRoot.h.
typedef MatrixType::Scalar Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::Scalar [private] |
Definition at line 57 of file MatrixSquareRoot.h.
Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::MatrixSquareRootQuasiTriangular | ( | const MatrixType & | A | ) | [inline] |
Constructor.
[in] | A | upper quasi-triangular matrix whose square root is to be computed. |
The class stores a reference to A
, so it should not be changed (or destroyed) before compute() is called.
Definition at line 39 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::compute | ( | ResultType & | result | ) |
Compute the matrix square root.
[out] | result | square root of A , as specified in the constructor. |
Only the upper Hessenberg part of result
is updated, the rest is not touched. See MatrixBase::sqrt() for details on how this computation is implemented.
Definition at line 80 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::compute1x1offDiagonalBlock | ( | MatrixType & | sqrtT, |
const MatrixType & | T, | ||
typename MatrixType::Index | i, | ||
typename MatrixType::Index | j | ||
) | [private] |
Definition at line 161 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::compute1x2offDiagonalBlock | ( | MatrixType & | sqrtT, |
const MatrixType & | T, | ||
typename MatrixType::Index | i, | ||
typename MatrixType::Index | j | ||
) | [private] |
Definition at line 171 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::compute2x1offDiagonalBlock | ( | MatrixType & | sqrtT, |
const MatrixType & | T, | ||
typename MatrixType::Index | i, | ||
typename MatrixType::Index | j | ||
) | [private] |
Definition at line 185 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::compute2x2diagonalBlock | ( | MatrixType & | sqrtT, |
const MatrixType & | T, | ||
typename MatrixType::Index | i | ||
) | [private] |
Definition at line 146 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::compute2x2offDiagonalBlock | ( | MatrixType & | sqrtT, |
const MatrixType & | T, | ||
typename MatrixType::Index | i, | ||
typename MatrixType::Index | j | ||
) | [private] |
Definition at line 199 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::computeDiagonalPartOfSqrt | ( | MatrixType & | sqrtT, |
const MatrixType & | T | ||
) | [private] |
Definition at line 99 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::computeOffDiagonalPartOfSqrt | ( | MatrixType & | sqrtT, |
const MatrixType & | T | ||
) | [private] |
Definition at line 118 of file MatrixSquareRoot.h.
void Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::solveAuxiliaryEquation | ( | SmallMatrixType & | X, |
const SmallMatrixType & | A, | ||
const SmallMatrixType & | B, | ||
const SmallMatrixType & | C | ||
) | [static, private] |
Definition at line 216 of file MatrixSquareRoot.h.
const MatrixType& Eigen::MatrixSquareRootQuasiTriangular< MatrixType >::m_A [private] |
Definition at line 75 of file MatrixSquareRoot.h.