Loading [MathJax]/extensions/tex2jax.js
ROOT
6.06/09
Reference Guide
ROOT Home Page
Main Page
Related Pages
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
Modules
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
TMatrixDSym.h
TMatrixTSym< Double_t >
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
TMatrixDSymEigen::kWorkMax
Definition:
TMatrixDSymEigen.h:45
TMatrixD.h
TMatrixDSymEigen::fEigenVectors
TMatrixD fEigenVectors
Definition:
TMatrixDSymEigen.h:40
TMatrixDSymEigen::~TMatrixDSymEigen
virtual ~TMatrixDSymEigen()
Definition:
TMatrixDSymEigen.h:50