OPAL (Object Oriented Parallel Accelerator Library)  2021.1.99
OPAL
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
FDoubleEigen< N > Class Template Reference

Eigenvalues and eigenvectors for a real general matrix. More...

#include <FDoubleEigen.h>

Collaboration diagram for FDoubleEigen< N >:
Collaboration graph
[legend]

Public Member Functions

 FDoubleEigen (const FMatrix< double, N, N > &M, bool vec=false)
 Constructor. More...
 
 FDoubleEigen ()
 
 FDoubleEigen (const FDoubleEigen &)
 
 ~FDoubleEigen ()
 
FVector< std::complex< double >, N > eigenValues () const
 Get eigenvalues. More...
 
FMatrix< std::complex< double >, N, N > eigenVectors () const
 Get eigenvectors. More...
 
FMatrix< double, N, N > packedEigenVectors () const
 Get eigenvectors. More...
 

Private Member Functions

void operator= (const FDoubleEigen &)
 
void elmtran (FMatrix< double, N, N > &, int low, int high, int index[N])
 
int hqr (FMatrix< double, N, N > &, int low, int high)
 
int hqr2 (FMatrix< double, N, N > &, int low, int high)
 
void balbak (int low, int high, double scale[N])
 

Static Private Member Functions

static void balance (FMatrix< double, N, N > &, int &low, int &high, double scale[N])
 
static void exchange (FMatrix< double, N, N > &, int j, int m, int low, int high)
 
static void elmhes (FMatrix< double, N, N > &, int low, int high, int index[N])
 

Private Attributes

FVector< std::complex< double >, N > lambda
 
FMatrix< double, N, N > vectors
 

Detailed Description

template<int N>
class FDoubleEigen< N >

Eigenvalues and eigenvectors for a real general matrix.

Definition at line 35 of file FDoubleEigen.h.

Constructor & Destructor Documentation

◆ FDoubleEigen() [1/3]

template<int N>
FDoubleEigen< N >::FDoubleEigen ( const FMatrix< double, N, N > &  M,
bool  vec = false 
)

◆ FDoubleEigen() [2/3]

template<int N>
FDoubleEigen< N >::FDoubleEigen

Definition at line 124 of file FDoubleEigen.h.

◆ FDoubleEigen() [3/3]

template<int N>
FDoubleEigen< N >::FDoubleEigen ( const FDoubleEigen< N > &  M)

Definition at line 130 of file FDoubleEigen.h.

◆ ~FDoubleEigen()

template<int N>
FDoubleEigen< N >::~FDoubleEigen

Definition at line 178 of file FDoubleEigen.h.

Member Function Documentation

◆ balance()

template<int N>
void FDoubleEigen< N >::balance ( FMatrix< double, N, N > &  copy,
int &  low,
int &  high,
double  scale[N] 
)
staticprivate

Definition at line 228 of file FDoubleEigen.h.

References abs(), and Physics::c.

Referenced by FDoubleEigen< N >::FDoubleEigen().

Here is the call graph for this function:

◆ balbak()

template<int N>
void FDoubleEigen< N >::balbak ( int  low,
int  high,
double  scale[N] 
)
private

Definition at line 351 of file FDoubleEigen.h.

Referenced by FDoubleEigen< N >::FDoubleEigen().

◆ eigenValues()

template<int N>
FVector< std::complex< double >, N > FDoubleEigen< N >::eigenValues

Get eigenvalues.

Definition at line 183 of file FDoubleEigen.h.

◆ eigenVectors()

template<int N>
FMatrix< std::complex< double >, N, N > FDoubleEigen< N >::eigenVectors

Get eigenvectors.

Definition at line 191 of file FDoubleEigen.h.

References imag(), and Attrib::Distribution::R.

Here is the call graph for this function:

◆ elmhes()

template<int N>
void FDoubleEigen< N >::elmhes ( FMatrix< double, N, N > &  copy,
int  low,
int  high,
int  index[N] 
)
staticprivate

Definition at line 394 of file FDoubleEigen.h.

References abs().

Referenced by FDoubleEigen< N >::FDoubleEigen().

Here is the call graph for this function:

◆ elmtran()

template<int N>
void FDoubleEigen< N >::elmtran ( FMatrix< double, N, N > &  copy,
int  low,
int  high,
int  index[N] 
)
private

Definition at line 454 of file FDoubleEigen.h.

Referenced by FDoubleEigen< N >::FDoubleEigen().

◆ exchange()

template<int N>
void FDoubleEigen< N >::exchange ( FMatrix< double, N, N > &  copy,
int  j,
int  m,
int  low,
int  high 
)
staticprivate

Definition at line 500 of file FDoubleEigen.h.

◆ hqr()

template<int N>
int FDoubleEigen< N >::hqr ( FMatrix< double, N, N > &  h,
int  low,
int  high 
)
private

Definition at line 510 of file FDoubleEigen.h.

References abs(), and sqrt().

Referenced by FDoubleEigen< N >::FDoubleEigen().

Here is the call graph for this function:

◆ hqr2()

template<int N>
int FDoubleEigen< N >::hqr2 ( FMatrix< double, N, N > &  h,
int  low,
int  high 
)
private

Definition at line 703 of file FDoubleEigen.h.

References abs(), cdiv(), imag(), max(), real(), and sqrt().

Referenced by FDoubleEigen< N >::FDoubleEigen().

Here is the call graph for this function:

◆ operator=()

template<int N>
void FDoubleEigen< N >::operator= ( const FDoubleEigen< N > &  )
private

◆ packedEigenVectors()

template<int N>
FMatrix< double, N, N > FDoubleEigen< N >::packedEigenVectors

Get eigenvectors.

Definition at line 217 of file FDoubleEigen.h.

Member Data Documentation

◆ lambda

template<int N>
FVector<std::complex<double>, N> FDoubleEigen< N >::lambda
private

Definition at line 90 of file FDoubleEigen.h.

◆ vectors

template<int N>
FMatrix<double, N, N> FDoubleEigen< N >::vectors
private

Definition at line 91 of file FDoubleEigen.h.

Referenced by FDoubleEigen< N >::FDoubleEigen().


The documentation for this class was generated from the following file: