ROOT  6.06/09
Reference Guide
Public Types | Public Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
TMatrixDEigen Class Reference

Definition at line 30 of file TMatrixDEigen.h.

Public Types

enum  { kWorkMax = 100 }
 

Public Member Functions

 TMatrixDEigen ()
 
 TMatrixDEigen (const TMatrixD &a)
 
 TMatrixDEigen (const TMatrixDEigen &another)
 Copy constructor. More...
 
virtual ~TMatrixDEigen ()
 
const TMatrixDGetEigenVectors () const
 
const TVectorDGetEigenValuesRe () const
 
const TVectorDGetEigenValuesIm () const
 
const TMatrixD GetEigenValues () const
 Computes the block diagonal eigenvalue matrix. More...
 
TMatrixDEigenoperator= (const TMatrixDEigen &source)
 Assignment operator. More...
 

Static Protected Member Functions

static void MakeHessenBerg (TMatrixD &v, TVectorD &ortho, TMatrixD &H)
 Nonsymmetric reduction to Hessenberg form. More...
 
static void MakeSchurr (TMatrixD &v, TVectorD &d, TVectorD &e, TMatrixD &H)
 Nonsymmetric reduction from Hessenberg to real Schur form. More...
 
static void Sort (TMatrixD &v, TVectorD &d, TVectorD &e)
 Sort eigenvalues and corresponding vectors in descending order of Re^2+Im^2 of the complex eigenvalues . More...
 

Protected Attributes

TMatrixD fEigenVectors
 
TVectorD fEigenValuesRe
 
TVectorD fEigenValuesIm
 

#include <TMatrixDEigen.h>

+ Collaboration diagram for TMatrixDEigen:

Member Enumeration Documentation

anonymous enum
Enumerator
kWorkMax 

Definition at line 44 of file TMatrixDEigen.h.

Constructor & Destructor Documentation

TMatrixDEigen::TMatrixDEigen ( )
inline

Definition at line 46 of file TMatrixDEigen.h.

TMatrixDEigen::TMatrixDEigen ( const TMatrixD a)
TMatrixDEigen::TMatrixDEigen ( const TMatrixDEigen another)

Copy constructor.

Definition at line 93 of file TMatrixDEigen.cxx.

virtual TMatrixDEigen::~TMatrixDEigen ( )
inlinevirtual

Definition at line 50 of file TMatrixDEigen.h.

Member Function Documentation

const TMatrixD TMatrixDEigen::GetEigenValues ( ) const

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.

Indexing: If matrix A has the index/shape (rowLwb,rowUpb,rowLwb,rowUpb) each eigen-vector must have the shape (rowLwb,rowUpb) . For convinience, the column index of the eigen-vector matrix also runs from rowLwb to rowUpb so that the returned matrix has also index/shape (rowLwb,rowUpb,rowLwb,rowUpb) .

Definition at line 780 of file TMatrixDEigen.cxx.

const TVectorD& TMatrixDEigen::GetEigenValuesIm ( ) const
inline

Definition at line 61 of file TMatrixDEigen.h.

const TVectorD& TMatrixDEigen::GetEigenValuesRe ( ) const
inline

Definition at line 60 of file TMatrixDEigen.h.

Referenced by TMatrixT< Element >::EigenVectors().

const TMatrixD& TMatrixDEigen::GetEigenVectors ( ) const
inline

Definition at line 59 of file TMatrixDEigen.h.

Referenced by TMatrixT< Element >::EigenVectors().

void TMatrixDEigen::MakeHessenBerg ( TMatrixD v,
TVectorD ortho,
TMatrixD H 
)
staticprotected

Nonsymmetric reduction to Hessenberg form.

This is derived from the Algol procedures orthes and ortran, by Martin and Wilkinson, Handbook for Auto. Comp., Vol.ii-Linear Algebra, and the corresponding Fortran subroutines in EISPACK.

Definition at line 104 of file TMatrixDEigen.cxx.

void TMatrixDEigen::MakeSchurr ( TMatrixD v,
TVectorD d,
TVectorD e,
TMatrixD H 
)
staticprotected

Nonsymmetric reduction from Hessenberg to real Schur form.

This is derived from the Algol procedure hqr2, by Martin and Wilkinson, Handbook for Auto. Comp., Vol.ii-Linear Algebra, and the corresponding Fortran subroutine in EISPACK.

Definition at line 229 of file TMatrixDEigen.cxx.

TMatrixDEigen & TMatrixDEigen::operator= ( const TMatrixDEigen source)

Assignment operator.

Definition at line 735 of file TMatrixDEigen.cxx.

void TMatrixDEigen::Sort ( TMatrixD v,
TVectorD d,
TVectorD e 
)
staticprotected

Sort eigenvalues and corresponding vectors in descending order of Re^2+Im^2 of the complex eigenvalues .

Definition at line 694 of file TMatrixDEigen.cxx.

Member Data Documentation

TVectorD TMatrixDEigen::fEigenValuesIm
protected

Definition at line 40 of file TMatrixDEigen.h.

Referenced by GetEigenValues(), GetEigenValuesIm(), and operator=().

TVectorD TMatrixDEigen::fEigenValuesRe
protected

Definition at line 39 of file TMatrixDEigen.h.

Referenced by GetEigenValues(), GetEigenValuesRe(), and operator=().

TMatrixD TMatrixDEigen::fEigenVectors
protected

Definition at line 38 of file TMatrixDEigen.h.

Referenced by GetEigenValues(), GetEigenVectors(), and operator=().


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