"MarlinReco"
1.32.0
|
Public Member Functions | |
Eigenvalue (float A[3][3]) | |
Check for symmetry, then construct the eigenvalue decomposition. More... | |
void | getV (float V_[3][3]) |
Return the eigenvector matrix. More... | |
void | getRealEigenvalues (float d_[3]) |
Return the real parts of the eigenvalues. More... | |
void | getImagEigenvalues (float e_[3]) |
Return the imaginary parts of the eigenvalues in parameter e_. More... | |
void | getD (float D[3][3]) |
Computes the block diagonal eigenvalue matrix. More... | |
|
inline |
Check for symmetry, then construct the eigenvalue decomposition.
A | Square real (non-complex) matrix |
|
inline |
Computes the block diagonal eigenvalue matrix.
If the original matrix A is not symmetric, then the eigenvalue matrix D is block diagonal with the real eigenvalues in 1-by-1 blocks and any complex eigenvalues, a + i*b, in 2-by-2 blocks, [a, b; -b, a]. That is, if the complex eigenvalues look like
u + iv . . . . . . u - iv . . . . . . a + ib . . . . . . a - ib . . . . . . x . . . . . . y
then D looks like
u v . . . . -v u . . . . . . a b . . . . -b a . . . . . . x . . . . . . y
This keeps V a real matrix in both symmetric and non-symmetric cases, and A*V = V*D.
@param D: upon return, the matrix is filled with the block diagonal eigenvalue matrix.
|
inline |
Return the imaginary parts of the eigenvalues
in parameter e_.
e_: new matrix with imaginary parts of the eigenvalues.
|
inline |
Return the real parts of the eigenvalues.
|
inline |
Return the eigenvector matrix.