SourcePro® API Reference Guide

 
List of all members | Public Member Functions
RWHermEigServer< TypeT > Class Template Referenceabstract

Abstract base class for the Hermitian eigenvalue server. More...

#include <rw/lapack/heigsrv.h>

Inheritance diagram for RWHermEigServer< TypeT >:
RWHermPDQREigServer< TypeT > RWHermQREigServer< TypeT > RWHermRangeEigServer< TypeT > RWHermRFQREigServer< TypeT > RWHermSomeEigServer< TypeT >

Public Member Functions

virtual bool computeEigenVectors () const =0
 
virtual RWSymEigDecomp< double > decompose (const RWTriDiagDecomp< TypeT > &A)=0
 
virtual RWHermEigDecomp< TypeT > operator() (const RWHermMat< TypeT > &A)
 
virtual RWHermEigDecomp< TypeT > operator() (const RWHermBandMat< TypeT > &A)
 

Detailed Description

template<class TypeT>
class RWHermEigServer< TypeT >

The class RWHermEigServer is an abstract base class for the Hermitian eigenvalue server. For each precision, the Linear Algebra Module provides several derived types:

This base class serves two purposes:

The common implementation includes a set of protected routines to modify a given RWHermEigDecomp object. This way, all server classes, including any that you write, can access the internals of the decomposition object without being explicitly listed as friend classes.

Synopsis
#include <rw/lapack/heigsrv.h>
RWHermEigDecomp<DComplex> eig = server(A); // A is a RWHermMat<DComplex>
Example
See the specific server subclasses for examples.

Member Function Documentation

template<class TypeT>
virtual bool RWHermEigServer< TypeT >::computeEigenVectors ( ) const
pure virtual

Returns true if this server is configured to compute eigenvectors as well as eigenvalues.

Implemented in RWHermRangeEigServer< TypeT >, RWHermSomeEigServer< TypeT >, RWHermRFQREigServer< TypeT >, RWHermPDQREigServer< TypeT >, and RWHermQREigServer< TypeT >.

template<class TypeT>
virtual RWSymEigDecomp<double> RWHermEigServer< TypeT >::decompose ( const RWTriDiagDecomp< TypeT > &  A)
pure virtual

Computes the eigenvalue decomposition of the tridiagonal matrix inside the tridiagonal decomposition. This pure virtual function is implemented in the specific server classes. It is used to implement the default operator()() functions.

Implemented in RWHermRangeEigServer< TypeT >, RWHermSomeEigServer< TypeT >, RWHermRFQREigServer< TypeT >, RWHermPDQREigServer< TypeT >, and RWHermQREigServer< TypeT >.

template<class TypeT>
virtual RWHermEigDecomp<TypeT> RWHermEigServer< TypeT >::operator() ( const RWHermMat< TypeT > &  A)
virtual

Computes a Hermitian eigenvalue decomposition. The default method implemented in this class first constructs a tridiagonal decomposition from the given matrix, next computes the eigenvalue decomposition for that decomposition, and finally transforms the eigenvectors as required.

If self is an instance of RWHermPDQREigServer, the matrix you pass in must be positive definite.

template<class TypeT>
virtual RWHermEigDecomp<TypeT> RWHermEigServer< TypeT >::operator() ( const RWHermBandMat< TypeT > &  A)
virtual

Computes a Hermitian eigenvalue decomposition. The default method implemented in this class first constructs a tridiagonal decomposition from the given matrix, next computes the eigenvalue decomposition for that decomposition, and finally transforms the eigenvectors as required.

If self is an instance of RWHermPDQREigServer, the matrix you pass in must be positive definite.

Copyright © 2023 Rogue Wave Software, Inc., a Perforce company. All Rights Reserved.