All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
JAMMA::Eigenvalue Class Reference

#include <jama_eig.h>

Public Member Functions

 ~Eigenvalue ()
 
 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...
 

Private Member Functions

void tred2 ()
 
void tql2 ()
 
void orthes ()
 
void cdiv (float xr, float xi, float yr, float yi)
 
void hqr2 ()
 

Private Attributes

int n {}
 Row and column dimension (square matrix). More...
 
int issymmetric {}
 
float d [3] {}
 
float e [3] {}
 
float V [3][3] {}
 
float H [3][3] {}
 
float ort [3] {}
 
float cdivr {}
 
float cdivi {}
 

Detailed Description

Definition at line 16 of file jama_eig.h.

Constructor & Destructor Documentation

JAMMA::Eigenvalue::~Eigenvalue ( )
inline

Definition at line 830 of file jama_eig.h.

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

Check for symmetry, then construct the eigenvalue decomposition.

Parameters
ASquare real (non-complex) matrix

Definition at line 837 of file jama_eig.h.

Member Function Documentation

void JAMMA::Eigenvalue::cdiv ( float  xr,
float  xi,
float  yr,
float  yi 
)
inlineprivate

Definition at line 364 of file jama_eig.h.

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.

Parameters
D,:upon return, the matrix is filled with the block diagonal eigenvalue matrix.

Definition at line 948 of file jama_eig.h.

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.

Definition at line 908 of file jama_eig.h.

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

Return the real parts of the eigenvalues.

Returns
real(diag(D))

Definition at line 897 of file jama_eig.h.

void JAMMA::Eigenvalue::getV ( float  V_[3][3])
inline

Return the eigenvector matrix.

Returns
V

Definition at line 885 of file jama_eig.h.

void JAMMA::Eigenvalue::hqr2 ( )
inlineprivate

Definition at line 382 of file jama_eig.h.

void JAMMA::Eigenvalue::orthes ( )
inlineprivate

Definition at line 269 of file jama_eig.h.

void JAMMA::Eigenvalue::tql2 ( )
inlineprivate

Definition at line 146 of file jama_eig.h.

void JAMMA::Eigenvalue::tred2 ( )
inlineprivate

Definition at line 29 of file jama_eig.h.

Member Data Documentation

float JAMMA::Eigenvalue::cdivi {}
private

Definition at line 363 of file jama_eig.h.

float JAMMA::Eigenvalue::cdivr {}
private

Definition at line 363 of file jama_eig.h.

float JAMMA::Eigenvalue::d[3] {}
private

Definition at line 23 of file jama_eig.h.

float JAMMA::Eigenvalue::e[3] {}
private

Definition at line 24 of file jama_eig.h.

float JAMMA::Eigenvalue::H[3][3] {}
private

Definition at line 26 of file jama_eig.h.

int JAMMA::Eigenvalue::issymmetric {}
private

Definition at line 22 of file jama_eig.h.

int JAMMA::Eigenvalue::n {}
private

Row and column dimension (square matrix).

Definition at line 21 of file jama_eig.h.

float JAMMA::Eigenvalue::ort[3] {}
private

Definition at line 27 of file jama_eig.h.

float JAMMA::Eigenvalue::V[3][3] {}
private

Definition at line 25 of file jama_eig.h.


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