Encapsulates Hessenberg decomposition eigenvalue servers used to construct eigenvalue decomposition objects of type RWEigDecomp from Hessenberg decompositions.
More...
#include <rw/lapack/eigsrv.h>
template<class TypeT>
class RWHessEigServer< TypeT >
The class RWHessEigServer encapsulates Hessenberg decomposition eigenvalue servers. These servers are used to construct eigenvalue decomposition objects of type RWEigDecomp 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%.
- Synopsis
#include <rw/lapack/eigsrv.h>
RWHessEigDecomp<double> deig = server(A);
Encapsulates Hessenberg decomposition eigenvalue servers used to construct eigenvalue decomposition o...
Definition eigsrv.h:344
- Example
#include <rw/lapack/eigsrv.h>
#include <iostream>
int main() {
std::cin >> A;
RWHessEigDecomp<double> deig = server(A);
return 0;
}
A templatized general matrix class.
Definition genmat.h:735
void selectEigenVectors(const RWMathVec< int > &)
A templatized vector class.
Definition mathvec.h:645
◆ RWHessEigServer() [1/2]
Constructs a server. Use member functions to set basic options.
◆ RWHessEigServer() [2/2]
Constructs a server. You can adjust some basic options at construction time, or adjust them later using member functions.
◆ balance()
Controls whether to do permutation and scaling transformations (balancing) before computing the eigenvalue decomposition.
◆ computeAllEigenVectors()
Returns true
if this server is configured to compute all the eigenvectors.
◆ computeLeftEigenVectors() [1/2]
Returns whether or not this server is configured to compute the left eigenvectors.
◆ computeLeftEigenVectors() [2/2]
Configures whether or not left eigenvectors are to be computed.
◆ computeRightEigenVectors() [1/2]
Returns whether or not this server is configured to compute the right eigenvectors.
◆ computeRightEigenVectors() [2/2]
Configures whether or not right eigenvectors are to be computed.
◆ operator()() [1/3]
Computes an eigenvalue decomposition.
◆ operator()() [2/3]
◆ operator()() [3/3]
Computes an eigenvalue decomposition.
◆ permute() [1/2]
Returns true
if the server is configured to attempt a permutation before computing the eigenvalues. Sometimes this can result in less computation.
◆ permute() [2/2]
Configures whether or not to do a permutation transformation before computing the eigenvalues. Sometimes this can result in less computation.
◆ scale() [1/2]
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.
◆ scale() [2/2]
Configures whether or not to do a scaling transformation before computing the eigenvalues. Sometimes this transformation can result in more accurate eigenvalues.
◆ selectEigenVectors() [1/2]
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.
◆ selectEigenVectors() [2/2]
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.