ROOT
v6-22
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
27
class
TMatrixDSymEigen
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
41
TMatrixDSymEigen
() :
fEigenVectors
(),
fEigenValues
() {};
42
TMatrixDSymEigen
(
const
TMatrixDSym
&
a
);
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
56
TMatrixDSymEigen
&
operator=
(
const
TMatrixDSymEigen
&source);
57
58
ClassDef
(
TMatrixDSymEigen
,1)
// Eigen-Vectors/Values of a Matrix
59
};
60
#endif
d
#define d(i)
Definition:
RSha256.hxx:102
e
#define e(i)
Definition:
RSha256.hxx:103
ClassDef
#define ClassDef(name, id)
Definition:
Rtypes.h:322
TMatrixDSym.h
TMatrixD.h
TVectorD.h
TMatrixDSymEigen
TMatrixDSymEigen.
Definition:
TMatrixDSymEigen.h:28
TMatrixDSymEigen::MakeEigenVectors
static void MakeEigenVectors(TMatrixD &v, TVectorD &d, TVectorD &e)
Symmetric tridiagonal QL algorithm.
Definition:
TMatrixDSymEigen.cxx:201
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::TMatrixDSymEigen
TMatrixDSymEigen()
Definition:
TMatrixDSymEigen.h:41
TMatrixDSymEigen::fEigenValues
TVectorD fEigenValues
Definition:
TMatrixDSymEigen.h:35
TMatrixDSymEigen::GetEigenValues
const TVectorD & GetEigenValues() const
Definition:
TMatrixDSymEigen.h:54
TMatrixDSymEigen::kWorkMax
@ kWorkMax
Definition:
TMatrixDSymEigen.h:39
TMatrixDSymEigen::operator=
TMatrixDSymEigen & operator=(const TMatrixDSymEigen &source)
Assignment operator.
Definition:
TMatrixDSymEigen.cxx:328
TMatrixDSymEigen::fEigenVectors
TMatrixD fEigenVectors
Definition:
TMatrixDSymEigen.h:34
TMatrixDSymEigen::GetEigenVectors
const TMatrixD & GetEigenVectors() const
Definition:
TMatrixDSymEigen.h:53
TMatrixDSymEigen::~TMatrixDSymEigen
virtual ~TMatrixDSymEigen()
Definition:
TMatrixDSymEigen.h:44
TMatrixTSym< Double_t >
TMatrixT< Double_t >
TVectorT< Double_t >
v
@ v
Definition:
rootcling_impl.cxx:3624
a
auto * a
Definition:
textangle.C:12
math
matrix
inc
TMatrixDSymEigen.h
ROOT v6-22 - Reference Guide Generated on Fri Apr 1 2022 11:52:11 (GVA Time) using Doxygen 1.9.4