OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
DoubleEigen Class Reference

Double eigenvector routines. More...

#include <DoubleEigen.h>

Collaboration diagram for DoubleEigen:
Collaboration graph
[legend]

Public Member Functions

 DoubleEigen (const Matrix< double > &m, bool vec=false)
 Constructor. More...
 
 DoubleEigen ()
 
 DoubleEigen (const DoubleEigen &)
 
 ~DoubleEigen ()
 
Vector< complex< double > > eigenValues () const
 Get eigenvalues. More...
 
Matrix< complex< double > > eigenVectors () const
 Get eigenvectors. More...
 
Matrix< double > packedEigenVectors () const
 Get eigenvectors. More...
 

Private Member Functions

void operator= (const DoubleEigen &)
 
void elmtran (Matrix< double > &, int low, int high, Array1D< int > &index)
 
int hqr (Matrix< double > &, int low, int high)
 
int hqr2 (Matrix< double > &, int low, int high)
 
void balbak (int low, int high, Vector< double > &scale)
 

Static Private Member Functions

static void balance (Matrix< double > &, int &low, int &high, Vector< double > &)
 
static void exchange (Matrix< double > &, int j, int m, int low, int high)
 
static void elmhes (Matrix< double > &, int low, int high, Array1D< int > &index)
 

Private Attributes

Vector< complex< double > > lambda
 
Matrix< double > vectors
 

Detailed Description

Double eigenvector routines.

Definition at line 36 of file DoubleEigen.h.

Constructor & Destructor Documentation

DoubleEigen::DoubleEigen ( const Matrix< double > &  m,
bool  vec = false 
)

Constructor.

Definition at line 70 of file DoubleEigen.cpp.

References balance(), balbak(), elmhes(), elmtran(), hqr(), hqr2(), Hypervolume::n, Array2D< T >::ncols(), and Array2D< T >::nrows().

Here is the call graph for this function:

DoubleEigen::DoubleEigen ( )

Definition at line 60 of file DoubleEigen.cpp.

DoubleEigen::DoubleEigen ( const DoubleEigen M)

Definition at line 65 of file DoubleEigen.cpp.

DoubleEigen::~DoubleEigen ( )

Definition at line 115 of file DoubleEigen.cpp.

Member Function Documentation

void DoubleEigen::balance ( Matrix< double > &  copy,
int &  low,
int &  high,
Vector< double > &  scale 
)
staticprivate

Definition at line 163 of file DoubleEigen.cpp.

References abs(), Physics::c, Hypervolume::n, and Array2D< T >::nrows().

Referenced by DoubleEigen().

Here is the call graph for this function:

void DoubleEigen::balbak ( int  low,
int  high,
Vector< double > &  scale 
)
private

Definition at line 288 of file DoubleEigen.cpp.

References Hypervolume::n, Array2D< T >::nrows(), Array2D< T >::swapRows(), and vectors.

Referenced by DoubleEigen().

Here is the call graph for this function:

Vector< complex< double > > DoubleEigen::eigenValues ( ) const

Get eigenvalues.

Definition at line 119 of file DoubleEigen.cpp.

References lambda.

Referenced by NormalForm::NormalForm().

Matrix< complex< double > > DoubleEigen::eigenVectors ( ) const

Get eigenvectors.

Definition at line 126 of file DoubleEigen.cpp.

References imag(), lambda, Hypervolume::n, Array2D< T >::nrows(), Attrib::Distribution::R, and vectors.

Here is the call graph for this function:

void DoubleEigen::elmhes ( Matrix< double > &  copy,
int  low,
int  high,
Array1D< int > &  index 
)
staticprivate

Definition at line 335 of file DoubleEigen.cpp.

References abs(), Hypervolume::n, and Array2D< T >::nrows().

Referenced by DoubleEigen().

Here is the call graph for this function:

void DoubleEigen::elmtran ( Matrix< double > &  copy,
int  low,
int  high,
Array1D< int > &  index 
)
private

Definition at line 399 of file DoubleEigen.cpp.

References vectors.

Referenced by DoubleEigen().

void DoubleEigen::exchange ( Matrix< double > &  copy,
int  j,
int  m,
int  low,
int  high 
)
staticprivate

Definition at line 447 of file DoubleEigen.cpp.

References Hypervolume::n, and Array2D< T >::nrows().

Here is the call graph for this function:

int DoubleEigen::hqr ( Matrix< double > &  h,
int  low,
int  high 
)
private

Definition at line 458 of file DoubleEigen.cpp.

References abs(), lambda, Hypervolume::n, Array2D< T >::nrows(), and sqrt().

Referenced by DoubleEigen().

Here is the call graph for this function:

int DoubleEigen::hqr2 ( Matrix< double > &  h,
int  low,
int  high 
)
private

Definition at line 655 of file DoubleEigen.cpp.

References abs(), cdiv(), imag(), lambda, max(), Hypervolume::n, Array2D< T >::nrows(), real(), sqrt(), and vectors.

Referenced by DoubleEigen().

Here is the call graph for this function:

void DoubleEigen::operator= ( const DoubleEigen )
private
Matrix< double > DoubleEigen::packedEigenVectors ( ) const

Get eigenvectors.

Definition at line 152 of file DoubleEigen.cpp.

References vectors.

Referenced by NormalForm::NormalForm().

Member Data Documentation

Vector<complex<double> > DoubleEigen::lambda
private

Definition at line 91 of file DoubleEigen.h.

Referenced by eigenValues(), eigenVectors(), hqr(), and hqr2().

Matrix<double> DoubleEigen::vectors
private

Definition at line 92 of file DoubleEigen.h.

Referenced by balbak(), eigenVectors(), elmtran(), hqr2(), and packedEigenVectors().


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