"MarlinReco"  1.32.0
Public Member Functions | List of all members
JAMMA::Eigenvalue Class Reference

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...
 

Constructor & Destructor Documentation

JAMMA::Eigenvalue::Eigenvalue ( float  A[3][3])
inline

Check for symmetry, then construct the eigenvalue decomposition.

Parameters
ASquare real (non-complex) matrix

Member Function Documentation

void JAMMA::Eigenvalue::getD ( float  D[3][3])
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.
void JAMMA::Eigenvalue::getImagEigenvalues ( float  e_[3])
inline

Return the imaginary parts of the eigenvalues

in parameter e_.

e_: new matrix with imaginary parts of the eigenvalues.

void JAMMA::Eigenvalue::getRealEigenvalues ( float  d_[3])
inline

Return the real parts of the eigenvalues.

Returns
real(diag(D))
void JAMMA::Eigenvalue::getV ( float  V_[3][3])
inline

Return the eigenvector matrix.

Returns
V

The documentation for this class was generated from the following file: