classPii::EigenSystem
#include <PiiMathEigenSystem.h>
Implements eigenvalue calculations and stores the results of the calculations (eigenvalues and eigenvectors).
Description
Intended to be used through eigensolve.
Matrix elementtype Real number type used in calculations.
Public types
|
typedef tReal
|
|
|
typedef tT
|
|
|
typedef Real *const
|
|
|
typedef PiiMatrix< Real >
|
Public member functions
|
PiiMatrix< Real >
|
Creates block diagonal eigenvalue matrix from eigenvalues. |
|
PiiMatrix< std::complex< Real > >
|
(
)
Returns row vector with complex eigenvalues. |
|
const PiiMatrix< Real > &
|
(
)
Return imaginary parts of eigenvalues as row vector. |
|
const PiiMatrix< Real > &
|
(
)
Returns real parts of eigenvalues as row vector. |
|
const PiiMatrix< Real > &
|
(
)
Returns eigenvectors as columnvectors in a matrix. |
|
void
|
Solves eigenvalues and vectors for given matrix. |
Static public member functions
|
static void
|
Solves eigenvalues of given matrix. |
Function details
-
PiiMatrix< Real > blockDiagonalEigenvalMatrix
()Creates block diagonal eigenvalue matrix from eigenvalues.
For real eigenvalues, returns diagonal matrix with eigenvalues on diagonal(1x1 blocks), and for complex eigenvalues block on diagonal is of size 2x2. For example if the complex eigenvalues are u+iv and u-iv, the block looks like
u v -v u
-
PiiMatrix< std::complex< Real > > eigenvalues
()Returns row vector with complex eigenvalues.
-
Return imaginary parts of eigenvalues as row vector.
-
Returns real parts of eigenvalues as row vector.
-
Returns eigenvectors as columnvectors in a matrix.
-
void solve
Solves eigenvalues and vectors for given matrix.
-
static void solve
(- const PiiMatrix< T > & mat
- Real *const pRealpartArray
- Real *const pImagpartArray
- PiiMatrix< Real > *const pEigenvectors
[static]Solves eigenvalues of given matrix.
Parameters
- mat
Square matrix whose eigenvalues is to be calculated.
- pRealpartArray
Null pointer or pointer to array where realparts of eigenvalues will be stored. Make sure that the array is large enough(at least the size of matrix dimension).
- pImagpartArray
Null pointer or pointer to array where imaginaryparts of eigenvalues will be stored. Make sure that the array is large enough(at least the size of matrix dimension).
- pEigenvectors
-
static void cdiv
(- const Real xr
- const Real xi
- const Real yr
- const Real yi
- Real & cdivr
- Real & cdivi
[static]Complex scalar division, x/y (adapted from TNT function Eigenvalue::cdiv())
-
Nonsymmetric reduction from Hessenberg to real Schur form(adapted from TNT function Eigenvalue::hqr2())
-
Nonsymmetric reduction to Hessenberg form (adapted from TNT function Eigenvalue::orthes())
-
Symmetric tridiagonal QL algorithm (Adapted from TNT function Eigenvalue::tql2())
-
Symmetric Householder reduction to tridiagonal form (adapted from TNT function Eigenvalue::tred2())
Add a note
Not a single note added yet. Be the first, add yours.