Logo ROOT  
Reference Guide
TMatrixDSymEigen.h
Go to the documentation of this file.
1 // @(#)root/matrix:$Id$
2 // Authors: Fons Rademakers, Eddy Offermann Dec 2003
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TMatrixDSymEigen
13 #define ROOT_TMatrixDSymEigen
14 
15 //////////////////////////////////////////////////////////////////////////
16 // //
17 // TMatrixDSymEigen //
18 // //
19 // Eigenvalues and eigenvectors of a real symmetric matrix. //
20 // //
21 //////////////////////////////////////////////////////////////////////////
22 
23 #include "TMatrixD.h"
24 #include "TMatrixDSym.h"
25 #include "TVectorD.h"
26 
28 {
29 protected :
30 
31  static void MakeTridiagonal (TMatrixD &v,TVectorD &d,TVectorD &e);
32  static void MakeEigenVectors(TMatrixD &v,TVectorD &d,TVectorD &e);
33 
34  TMatrixD fEigenVectors; // Eigen-vectors of matrix
35  TVectorD fEigenValues; // Eigen-values
36 
37 public :
38 
39  enum {kWorkMax = 100}; // size of work array
40 
43  TMatrixDSymEigen(const TMatrixDSymEigen &another);
44  virtual ~TMatrixDSymEigen() {}
45 
46 // If matrix A has shape (rowLwb,rowUpb,rowLwb,rowUpb), then each eigen-vector
47 // must have an index running between (rowLwb,rowUpb) .
48 // For convenience, the column index of the eigen-vector matrix
49 // also runs from rowLwb to rowUpb so that the returned matrix
50 // has also index/shape (rowLwb,rowUpb,rowLwb,rowUpb) .
51 // The same is true for the eigen-value vector .
52 
53  const TMatrixD &GetEigenVectors() const { return fEigenVectors; }
54  const TVectorD &GetEigenValues () const { return fEigenValues; }
55 
57 
58  ClassDef(TMatrixDSymEigen,1) // Eigen-Vectors/Values of a Matrix
59 };
60 #endif
e
#define e(i)
Definition: RSha256.hxx:121
TVectorD.h
TMatrixTSym
Definition: TMatrixDSymfwd.h:22
TMatrixDSymEigen::MakeEigenVectors
static void MakeEigenVectors(TMatrixD &v, TVectorD &d, TVectorD &e)
Symmetric tridiagonal QL algorithm.
Definition: TMatrixDSymEigen.cxx:201
TMatrixDSymEigen::operator=
TMatrixDSymEigen & operator=(const TMatrixDSymEigen &source)
Assignment operator.
Definition: TMatrixDSymEigen.cxx:328
TMatrixT
Definition: TMatrixDfwd.h:22
v
@ v
Definition: rootcling_impl.cxx:3635
TMatrixDSym.h
TMatrixDSymEigen::GetEigenVectors
const TMatrixD & GetEigenVectors() const
Definition: TMatrixDSymEigen.h:59
a
auto * a
Definition: textangle.C:12
TMatrixDSymEigen::MakeTridiagonal
static void MakeTridiagonal(TMatrixD &v, TVectorD &d, TVectorD &e)
This is derived from the Algol procedures tred2 by Bowdler, Martin, Reinsch, and Wilkinson,...
Definition: TMatrixDSymEigen.cxx:71
TMatrixDSymEigen::kWorkMax
@ kWorkMax
Definition: TMatrixDSymEigen.h:45
TVectorT
Definition: TMatrixTBase.h:78
ClassDef
#define ClassDef(name, id)
Definition: Rtypes.h:325
TMatrixDSymEigen::GetEigenValues
const TVectorD & GetEigenValues() const
Definition: TMatrixDSymEigen.h:60
d
#define d(i)
Definition: RSha256.hxx:120
TMatrixDSymEigen::fEigenValues
TVectorD fEigenValues
Definition: TMatrixDSymEigen.h:41
TMatrixD.h
TMatrixDSymEigen::fEigenVectors
TMatrixD fEigenVectors
Definition: TMatrixDSymEigen.h:40
TMatrixDSymEigen::~TMatrixDSymEigen
virtual ~TMatrixDSymEigen()
Definition: TMatrixDSymEigen.h:50
TMatrixDSymEigen::TMatrixDSymEigen
TMatrixDSymEigen()
Definition: TMatrixDSymEigen.h:47
TMatrixDSymEigen
Definition: TMatrixDSymEigen.h:27