library: libMatrix
#include "TMatrixDEigen.h"

TMatrixDEigen


class description - header file - source file
viewCVS header - viewCVS source

class TMatrixDEigen

Inheritance Inherited Members Includes Libraries
Class Charts

Function Members (Methods)

Display options:
Show inherited
Show non-public
public:
TMatrixDEigen()
TMatrixDEigen(const TMatrixD& a)
TMatrixDEigen(const TMatrixDEigen& another)
virtual~TMatrixDEigen()
static TClass*Class()
const TMatrixDGetEigenValues() const
const TVectorD&GetEigenValuesIm() const
const TVectorD&GetEigenValuesRe() const
const TMatrixD&GetEigenVectors() const
virtual TClass*IsA() const
TMatrixDEigen&operator=(const TMatrixDEigen& source)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
protected:
static voidMakeHessenBerg(TMatrixD& v, TVectorD& ortho, TMatrixD& H)
static voidMakeSchurr(TMatrixD& v, TVectorD& d, TVectorD& e, TMatrixD& H)
static voidSort(TMatrixD& v, TVectorD& d, TVectorD& e)

Data Members

public:
enum { kWorkMax
};
protected:
TMatrixDfEigenVectorsEigen-vectors of matrix
TVectorDfEigenValuesReEigen-values
TVectorDfEigenValuesImEigen-values

Class Description

                                                                      
 TMatrixDEigen                                                        
                                                                      
 Eigenvalues and eigenvectors of a real matrix.                       
                                                                      
 If 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.                                                
                                                                      

TMatrixDEigen(const TMatrixD &a)
 Constructor for eigen-problem of matrix A .
TMatrixDEigen(const TMatrixDEigen &another)
 Copy constructor
void MakeHessenBerg(TMatrixD &v,TVectorD &ortho,TMatrixD &H)
 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.
void MakeSchurr(TMatrixD &v,TVectorD &d,TVectorD &e,TMatrixD &H)
 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.
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 .
TMatrixDEigen & operator=(const TMatrixDEigen &source)
 Assignment operator
const TMatrixD GetEigenValues()
 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) .

TMatrixDEigen()
{}
virtual ~TMatrixDEigen()
{}
const TVectorD & GetEigenValuesRe()
{ return fEigenValuesRe; }
const TVectorD & GetEigenValuesIm()
{ return fEigenValuesIm; }

Last update: root/matrix:$Name: $:$Id: TMatrixDEigen.cxx,v 1.15 2006/06/02 05:11:20 brun Exp $
Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.