rwlogo
SourcePro C++ 12.0

SourcePro® C++ API Reference Guide



   SourcePro C++
Documentation Home

RWSymRangeEigServer< TypeT > Class Template Reference
[Symmetric Eigenvalue Decomposition]

Server for symmetric eigenvalues that allows the computation of only the eigenvalues in a given range and (optionally) their corresponding eigenvectors. More...

#include <rw/lapack/seigsrv.h>

Inheritance diagram for RWSymRangeEigServer< TypeT >:
RWSymEigServer< TypeT >

List of all members.

Public Member Functions

 RWSymRangeEigServer (bool computeVecs=true)
virtual RWSymEigDecomp< TypeT > decompose (const RWTriDiagDecomp< TypeT > &A)
TypeT setTolerance (TypeT tolerance)
void setRange (TypeT from, TypeT to)
TypeT setSmall (TypeT small)
TypeT setLarge (TypeT large)
virtual bool computeEigenVectors () const
void computeEigenVectors (bool computeVecs)

Detailed Description

template<class TypeT>
class RWSymRangeEigServer< TypeT >

The symmetric eigenvalue server class, RWSymRangeEigServer<T> , 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/seigsrv.h>
 
 RWSymRangeEigServer<double> server;
 RWSymEigDecomp<double> eig = server(A);  // A is a RWSymBandMat<double>

Examples

 #include <iostream>
 #include <rw/lapack/seigsrv.h>
 
 int main()
 {
     RWSymMat<double> A;                    // input a matrix
     std::cin >> A;
 
     RWSymRangeEigServer<double> server;    // configure a server
     server.setRange(0.0, 0.5);             // Set the range from 0.0 to 0.5
     RWSymEigDecomp<double> eig = server(A);

     return 0;
 }

Constructor & Destructor Documentation

template<class TypeT>
RWSymRangeEigServer< TypeT >::RWSymRangeEigServer ( 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>
void RWSymRangeEigServer< TypeT >::computeEigenVectors ( bool  computeVecs  ) 

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

template<class TypeT>
virtual bool RWSymRangeEigServer< TypeT >::computeEigenVectors (  )  const [virtual]

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

Implements RWSymEigServer< TypeT >.

template<class TypeT>
virtual RWSymEigDecomp<TypeT> RWSymRangeEigServer< TypeT >::decompose ( const RWTriDiagDecomp< TypeT > &  A  )  [virtual]

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

Implements RWSymEigServer< TypeT >.

template<class TypeT>
TypeT RWSymRangeEigServer< TypeT >::setLarge ( TypeT  large  ) 

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

template<class TypeT>
void RWSymRangeEigServer< TypeT >::setRange ( TypeT  from,
TypeT  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>
TypeT RWSymRangeEigServer< TypeT >::setSmall ( TypeT  small  ) 

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

template<class TypeT>
TypeT RWSymRangeEigServer< TypeT >::setTolerance ( TypeT  tolerance  ) 

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

 All Classes Functions Variables Typedefs Enumerations Enumerator Friends

© Copyright 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.
Contact Rogue Wave about documentation or support issues.