Module: Linear Algebra Group: Symmetric Eigenvalue Decomposition classes
Does not inherit
#include <rw/lapack/seigsrv.h> RWSymPDQREigServer<double> server; RWSymEigDecomp<double> eig = server(A); // A is a // RWSymBandMat<double> #include <rw/lapack/heigsrv.h> RWHermPDQREigServer<double> server; RWHermEigDecomp<double> eig = server(A); // A is a // RWHermBandMat<DComplex>
The classes RWSymPDQREigServer<T> and RWHermPDQREigServer<T> are the servers for the positive definite QR method of computing eigenvalues. These servers apply only to matrices that you know are positive definite. Trying to use them on nonpositive definite matrices results in a decomposition with the incomplete flag set; you can test for this in the class RWSymEigDecomp<T>. Use of these servers with positive definite matrices can result in much more accurate eigenvalues and eigenvectors.
#include <iostream> #include <rw/lapack/seigsrv.h> int main() { RWSymMat<double> A; // input a matrix std::cin >> A; RWSymPDQREigServer<double> server; // configure a
server server.computeEigenVectors(false); // turn off
eigenvectors RWSymEigDecomp<double> eig = server(A); return 0; }
RWSymPDQREigServer(bool computeVecs=true); RWHermPDQREigServer(bool computeVecs=true);
Constructs a server. The parameter indicates whether this server should be configured to compute eigenvectors as well as eigenvalues.
void RWSymPDQREigServer<T>::computeEigenVectors(bool); void RWHermPDQREigServer<DComplex>::computeEigenVectors(bool);
Sets whether or not the server should compute eigenvectors as well as eigenvalues.
bool RWSymPDQREigServer<T>::computeEigenVectors() const; bool RWHermPDQREigServer<DComplex>::computeEigenVectors() const;
Returns true if this server is configured to compute eigenvectors as well as eigenvalues.
RWSymEigDecomp<T> RWSymPDQREigServer<T>::decompose
(const RWSymTriDiagDecomp<T>& A) const RWSymEigDecomp<double> RWHermPDQREigServer<DComplex>::decompose
(const RWSymTriDiagDecomp<double>& A) const
Computes the eigenvalue decomposition of the tridiagonal matrix inside the tridiagonal decomposition.
RWSymEigDecomp<T> RWSymPDQREigServer<T>::operator()
(const RWSymMat<T>& A) const; RWSymEigDecomp<T> RWSymPDQREigServer<T>::operator()
(const RWSymBandMat<T>& A) const; RWHermEigDecomp<DComplex>
RWHermPDQREigServer<DComplex>::operator()
(const RWHermMat<DComplex>& A) const; RWHermEigDecomp<DComplex>
RWHermPDQREigServer<DComplex>::operator()
(const RWHermBandMat<DComplex>& A) const;
Computes a symmetric eigenvalue decomposition. The matrix you pass in must be positive definite.
© 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.