OPAL (Object Oriented Parallel Accelerator Library) 2024.2
OPAL
FDoubleEigen< N > Class Template Reference

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

#include <FDoubleEigen.h>

Collaboration diagram for FDoubleEigen< N >:

Public Member Functions

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

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 )

Constructor.

Definition at line 136 of file FDoubleEigen.h.

References balance(), balbak(), elmhes(), elmtran(), hqr(), hqr2(), lambda, and vectors.

Referenced by FDoubleEigen(), and operator=().

Here is the call graph for this function:

◆ FDoubleEigen() [2/3]

template<int N>
FDoubleEigen< N >::FDoubleEigen ( )

Definition at line 124 of file FDoubleEigen.h.

References lambda, and vectors.

◆ FDoubleEigen() [3/3]

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

Definition at line 130 of file FDoubleEigen.h.

References FDoubleEigen(), lambda, and vectors.

Here is the call graph for this function:

◆ ~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 c, and exchange().

Referenced by 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.

References vectors.

Referenced by FDoubleEigen().

◆ eigenValues()

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

Get eigenvalues.

Definition at line 183 of file FDoubleEigen.h.

References lambda.

◆ eigenVectors()

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

Get eigenvectors.

Definition at line 191 of file FDoubleEigen.h.

References lambda, and vectors.

◆ 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.

Referenced by FDoubleEigen().

◆ 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.

References vectors.

Referenced by 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.

Referenced by balance().

◆ 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 lambda.

Referenced by FDoubleEigen().

◆ 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 cdiv(), lambda, and vectors.

Referenced by FDoubleEigen().

Here is the call graph for this function:

◆ operator=()

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

References FDoubleEigen().

Here is the call graph for this function:

◆ packedEigenVectors()

template<int N>
FMatrix< double, N, N > FDoubleEigen< N >::packedEigenVectors ( ) const

Get eigenvectors.

Definition at line 217 of file FDoubleEigen.h.

References vectors.

Member Data Documentation

◆ lambda

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

◆ vectors

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

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