SourcePro® C++ 13.1 |
SourcePro® C++ API Reference Guide |
Product Documentation: SourcePro C++ Documentation Home |
Encapsulates Hessenberg decomposition eigenvalue servers used to construct eigenvalue decomposition objects of type RWEigDecomp<T> from Hessenberg decompositions. More...
#include <rw/lapack/eigsrv.h>
Public Member Functions | |
RWHessEigServer (bool computeLeftVecs=true, bool computeRightVecs=true, bool scale=true, bool permute=true) | |
void | balance (bool) |
bool | computeAllEigenVectors () const |
bool | computeLeftEigenVectors () const |
void | computeLeftEigenVectors (bool) |
bool | computeRightEigenVectors () const |
void | computeRightEigenVectors (bool) |
virtual RWEigDecomp< TypeT > | operator() (const RWGenMat< TypeT > &A) |
virtual RWEigDecomp< TypeT > | operator() (const RWBalanceDecomp< TypeT > &A) |
virtual RWEigDecomp< TypeT > | operator() (const RWHessenbergDecomp< TypeT > &A) |
bool | permute () const |
void | permute (bool) |
bool | scale () const |
void | scale (bool) |
void | selectEigenVectors (const RWMathVec< int > &) |
void | selectEigenVectors (const RWSlice &) |
More... | |
The class RWHessEigServer<T> encapsulates Hessenberg decomposition eigenvalue servers. These servers are used to construct eigenvalue decomposition objects of type RWEigDecomp<T> from Hessenberg decompositions. The server can be configured to control which eigenvectors are computed, and other details of the computation. The eigenvectors are computed using inverse iteration. This is a good method to use when you need only a small number of the eigenvectors, perhaps less than 20%.
RWHessEigServer< TypeT >::RWHessEigServer | ( | bool | computeLeftVecs = true , |
bool | computeRightVecs = true , |
||
bool | scale = true , |
||
bool | permute = true |
||
) |
Constructs a server. You can adjust some basic options at construction time, or adjust them later using member functions.
void RWHessEigServer< TypeT >::balance | ( | bool | ) |
Controls whether to do permutation and scaling transformations (balancing) before computing the eigenvalue decomposition.
bool RWHessEigServer< TypeT >::computeAllEigenVectors | ( | ) | const |
Returns true
if this server is configured to compute all the eigenvectors.
bool RWHessEigServer< TypeT >::computeLeftEigenVectors | ( | ) | const |
Returns whether or not this server is configured to compute the left eigenvectors.
void RWHessEigServer< TypeT >::computeLeftEigenVectors | ( | bool | ) |
Configures whether or not left eigenvectors are to be computed.
bool RWHessEigServer< TypeT >::computeRightEigenVectors | ( | ) | const |
Returns whether or not this server is configured to compute the right eigenvectors.
void RWHessEigServer< TypeT >::computeRightEigenVectors | ( | bool | ) |
Configures whether or not right eigenvectors are to be computed.
|
virtual |
Computes an eigenvalue decomposition.
Implements RWEigServer< TypeT >.
|
virtual |
Computes an eigenvalue decomposition.
|
virtual |
Computes an eigenvalue decomposition.
bool RWHessEigServer< TypeT >::permute | ( | ) | const |
Returns true
if the server is configured to attempt a permutation before computing the eigenvalues. Sometimes this can result in less computation.
void RWHessEigServer< TypeT >::permute | ( | bool | ) |
Configures whether or not to do a permutation transformation before computing the eigenvalues. Sometimes this can result in less computation.
bool RWHessEigServer< TypeT >::scale | ( | ) | const |
Returns true
if the server is configured to do a scaling transformation before computing the eigenvalues. Sometimes this transformation can result in more accurate eigenvalues.
void RWHessEigServer< TypeT >::scale | ( | bool | ) |
Configures whether or not to do a scaling transformation before computing the eigenvalues. Sometimes this transformation can result in more accurate eigenvalues.
void RWHessEigServer< TypeT >::selectEigenVectors | ( | const RWMathVec< int > & | ) |
Selects which eigenvectors are to be computed. This call causes the server to forget which eigenvectors were previously selected. With a real as opposed to complex eigenserver object, selecting either of a complex conjugate pair of eigenvalues causes both to be selected.
void RWHessEigServer< TypeT >::selectEigenVectors | ( | const RWSlice & | ) |
Selects which eigenvectors are to be computed. This call causes the server to forget which eigenvectors were previously selected. With a real as opposed to complex eigenserver object, selecting either of a complex conjugate pair of eigenvalues causes both to be selected.
Copyright © 2015 Rogue Wave Software, Inc. All Rights Reserved. |