ROOT
6.07/01
Reference Guide
ROOT Home Page
Main Page
Tutorials
User's Classes
Namespaces
All Classes
Files
Release Notes
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
math
matrix
inc
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
#ifndef ROOT_TMatrixD
24
#include "
TMatrixD.h
"
25
#endif
26
#ifndef ROOT_TMatrixDSym
27
#include "
TMatrixDSym.h
"
28
#endif
29
#ifndef ROOT_TVectorD
30
#include "
TVectorD.h
"
31
#endif
32
33
class
TMatrixDSymEigen
34
{
35
protected
:
36
37
static
void
MakeTridiagonal
(
TMatrixD
&
v
,
TVectorD
&
d
,
TVectorD
&e);
38
static
void
MakeEigenVectors
(
TMatrixD
&v,
TVectorD
&d,
TVectorD
&e);
39
40
TMatrixD
fEigenVectors
;
// Eigen-vectors of matrix
41
TVectorD
fEigenValues
;
// Eigen-values
42
43
public
:
44
45
enum
{
kWorkMax
= 100};
// size of work array
46
47
TMatrixDSymEigen
() :
fEigenVectors
(),
fEigenValues
() {};
48
TMatrixDSymEigen
(
const
TMatrixDSym
&
a
);
49
TMatrixDSymEigen
(
const
TMatrixDSymEigen
&another);
50
virtual
~TMatrixDSymEigen
() {}
51
52
// If matrix A has shape (rowLwb,rowUpb,rowLwb,rowUpb), then each eigen-vector
53
// must have an index running between (rowLwb,rowUpb) .
54
// For convenience, the column index of the eigen-vector matrix
55
// also runs from rowLwb to rowUpb so that the returned matrix
56
// has also index/shape (rowLwb,rowUpb,rowLwb,rowUpb) .
57
// The same is true for the eigen-value vector .
58
59
const
TMatrixD
&
GetEigenVectors
()
const
{
return
fEigenVectors
; }
60
const
TVectorD
&
GetEigenValues
()
const
{
return
fEigenValues
; }
61
62
TMatrixDSymEigen
&
operator=
(
const
TMatrixDSymEigen
&source);
63
64
ClassDef
(
TMatrixDSymEigen
,1)
// Eigen-Vectors/Values of a Matrix
65
};
66
#endif
TMatrixDSymEigen::GetEigenValues
const TVectorD & GetEigenValues() const
Definition:
TMatrixDSymEigen.h:60
TMatrixDSymEigen::MakeEigenVectors
static void MakeEigenVectors(TMatrixD &v, TVectorD &d, TVectorD &e)
Symmetric tridiagonal QL algorithm.
Definition:
TMatrixDSymEigen.cxx:201
TMatrixDSymEigen::TMatrixDSymEigen
TMatrixDSymEigen()
Definition:
TMatrixDSymEigen.h:47
TVectorT< Double_t >
TMatrixDSymEigen::operator=
TMatrixDSymEigen & operator=(const TMatrixDSymEigen &source)
Assignment operator.
Definition:
TMatrixDSymEigen.cxx:328
a
TArc * a
Definition:
textangle.C:12
TMatrixDSymEigen
Definition:
TMatrixDSymEigen.h:33
TMatrixT< Double_t >
TVectorD.h
ClassDef
#define ClassDef(name, id)
Definition:
Rtypes.h:254
tornado.d
int d
Definition:
tornado.py:11
TMatrixDSym.h
TMatrixTSym< Double_t >
TMatrixDSymEigen::kWorkMax
Definition:
TMatrixDSymEigen.h:45
v
SVector< double, 2 > v
Definition:
Dict.h:5
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, Handbook for Auto.
Definition:
TMatrixDSymEigen.cxx:71
TMatrixDSymEigen::GetEigenVectors
const TMatrixD & GetEigenVectors() const
Definition:
TMatrixDSymEigen.h:59
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