SourcePro® C++ API Reference Guide

Product Documentation:
   SourcePro C++
Documentation Home
List of all members | Public Member Functions
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 RWHermMat< TypeT > &A)
 
virtual RWHermEigDecomp< TypeT > operator() (const RWHermBandMat< 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>
Example
#include <iostream>
#include <rw/lapack/heigsrv.h>
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;
}

Constructor & Destructor Documentation

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

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

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

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

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

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.

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.

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.

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

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

Copyright © 2016 Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.