SourcePro® API Reference Guide

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

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

#include <rw/lapack/seigsrv.h>

Inheritance diagram for RWSymEigServer< TypeT >:
RWSymPDQREigServer< TypeT > RWSymQREigServer< TypeT > RWSymRangeEigServer< TypeT > RWSymRFQREigServer< TypeT > RWSymSomeEigServer< TypeT >

Public Member Functions

virtual bool computeEigenVectors () const =0
 
virtual RWSymEigDecomp< TypeT > decompose (const RWTriDiagDecomp< TypeT > &A)=0
 
virtual RWSymEigDecomp< TypeT > operator() (const RWSymMat< TypeT > &A)
 
virtual RWSymEigDecomp< TypeT > operator() (const RWSymBandMat< TypeT > &A)
 

Detailed Description

template<class TypeT>
class RWSymEigServer< TypeT >

The class RWSymEigServer is an abstract base class for the symmetric 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 RWSymEigDecomp 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/seigsrv.h>
RWSymEigDecomp<double> eig = server(A); // A is a RWSymMat<double>
Example
See the specific server subclasses for examples.

Member Function Documentation

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

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

Implemented in RWSymRangeEigServer< TypeT >, RWSymSomeEigServer< TypeT >, RWSymRFQREigServer< TypeT >, RWSymPDQREigServer< TypeT >, and RWSymQREigServer< TypeT >.

template<class TypeT>
virtual RWSymEigDecomp<TypeT> RWSymEigServer< 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 RWSymRangeEigServer< TypeT >, RWSymSomeEigServer< TypeT >, RWSymRFQREigServer< TypeT >, RWSymPDQREigServer< TypeT >, and RWSymQREigServer< TypeT >.

template<class TypeT>
virtual RWSymEigDecomp<TypeT> RWSymEigServer< TypeT >::operator() ( const RWSymMat< TypeT > &  A)
virtual

Computes a symmetric 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 RWSymPDQREigServer, the matrix you pass in must be positive definite.

template<class TypeT>
virtual RWSymEigDecomp<TypeT> RWSymEigServer< TypeT >::operator() ( const RWSymBandMat< TypeT > &  A)
virtual

Computes a symmetric 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 RWSymPDQREigServer, the matrix you pass in must be positive definite.

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