SourcePro® API Reference Guide

 
Loading...
Searching...
No Matches
RWHermRangeEigServer< TypeT > Class Template Reference

The Hermitian eigenvalue server class, allowing the computation of only the eigenvalues in a given range and (optionally) their corresponding eigenvectors. More...

#include <rw/lapack/heigsrv.h>

Inheritance diagram for RWHermRangeEigServer< TypeT >:
RWHermEigServer< TypeT >

Public Member Functions

 RWHermRangeEigServer (bool computeVecs=true)
 
virtual bool computeEigenVectors () const
 
void computeEigenVectors (bool computeVecs)
 
virtual RWSymEigDecomp< double > decompose (const RWTriDiagDecomp< TypeT > &A)
 
double setLarge (double large)
 
void setRange (double from, double to)
 
double setSmall (double small)
 
double setTolerance (double tolerance)
 
- Public Member Functions inherited from RWHermEigServer< TypeT >
virtual RWHermEigDecomp< TypeT > operator() (const RWHermBandMat< TypeT > &A)
 
virtual RWHermEigDecomp< TypeT > operator() (const RWHermMat< TypeT > &A)
 

Detailed Description

template<class TypeT>
class RWHermRangeEigServer< TypeT >

The Hermitian eigenvalue server class, RWHermRangeEigServer, allows the computation of only the eigenvalues in a given range and (optionally) their corresponding eigenvectors. The computation uses the bisection method to find the eigenvalues, followed by inverse iteration to find the eigenvectors.

Synopsis
#include <rw/lapack/heigsrv.h>
RWHermEigDecomp<DComplex> eig = server(A); // A is a
// RWHermBandMat<DComplex>
Encapsulates the eigenvalues and eigenvectors of a Hermitian matrix.
Definition hermeig.h:80
The Hermitian eigenvalue server class, allowing the computation of only the eigenvalues in a given ra...
Definition heigsrv.h:473
Example
#include <rw/lapack/heigsrv.h>
#include <iostream>
int main() {
RWHermMat<DComplex> A; // input a matrix
std::cin >> A;
RWHermRangeEigServer<DComplex> server; // configure a server
server.setRange(0.0, 0.5); // Set the range from 0.0 to 0.5
RWHermEigDecomp<DComplex> eig = server(A);
return 0;
}
Encapsulates a Hermitian matrix.
Definition hermmat.h:118
void setRange(double from, double to)

Constructor & Destructor Documentation

◆ RWHermRangeEigServer()

template<class TypeT >
RWHermRangeEigServer< TypeT >::RWHermRangeEigServer ( bool computeVecs = true)

Constructs a server. The parameter indicates whether this server should be configured to compute eigenvectors as well as eigenvalues. The new server is configured to compute all eigenvalues.

Member Function Documentation

◆ computeEigenVectors() [1/2]

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

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

Implements RWHermEigServer< TypeT >.

◆ computeEigenVectors() [2/2]

template<class TypeT >
void RWHermRangeEigServer< TypeT >::computeEigenVectors ( bool computeVecs)

Sets whether or not the server should compute eigenvectors as well as eigenvalues.

◆ decompose()

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

Computes the eigenvalue decomposition of the tridiagonal matrix inside the tridiagonal decomposition.

Implements RWHermEigServer< TypeT >.

◆ setLarge()

template<class TypeT >
double RWHermRangeEigServer< TypeT >::setLarge ( double large)

Sets the upper boundary on the range of eigenvalues to be computed. Returns the previous upper boundary.

◆ setRange()

template<class TypeT >
void RWHermRangeEigServer< TypeT >::setRange ( double from,
double to )

Sets the range of eigenvalues to be computed. To set up a range which is open on one side (extends to infinity), you can use the setSmall() or setLarge() functions.

◆ setSmall()

template<class TypeT >
double RWHermRangeEigServer< TypeT >::setSmall ( double small)

Sets the lower boundary on the range of eigenvalues to be computed. Returns the previous lower boundary.

◆ setTolerance()

template<class TypeT >
double RWHermRangeEigServer< TypeT >::setTolerance ( double tolerance)

Sets the tolerance to which you must compute the eigenvalues. Returns the previous tolerance.

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