>
>#include <rw/deigsrv.h> // DoubleSchurEigServer #include <rw/ceigsrv.h> // DComplexSchurEigServer DoubleSchurEigServer server; DoubleSchurEigDecomp eig = server(A); // A is an RWGenMat<double>
The classes {TYPE}SchurEigServer encapsulate Schur decomposition eigenvalue servers. These servers are used to construct eigenvalue decomposition objects of type {TYPE}EigDecomp from Schur decompositions. A server can be configured to control which eigenvectors are computed, and other details of the computation.
>#include <rw/deigsrv.h> main() { RWGenMat<double> A; // input a matrix cin >> A; DoubleSchurEigServer server; // configure a server server.balance(FALSE); // turn off balancing option server.selectEigenVectors(RWMathVec<int>("[1 2 3 8 9]")); DoubleEigDecomp eig = server(A); }>
DoubleSchurEigServer(RWBoolean computeLeftVecs=TRUE, RWBoolean computeRightVecs=TRUE, RWBoolean scale=TRUE, RWBoolean permute=TRUE); DComplexSchurEigServer(RWBoolean computeLeftVecs=TRUE, RWBoolean computeRightVecs=TRUE, RWBoolean scale=TRUE, RWBoolean permute=TRUE);
Constructs a server. You can adjust some basic options at construction time, or adjust them later using member functions.
void DoubleSchurEigServer::balance(RWBoolean); void DComplexSchurEigServer::balance(RWBoolean);
Controls whether to do permutation and scaling transformations (balancing) before computing the eigenvalue decomposition.
RWBoolean DoubleSchurEigServer::computeAllEigenVectors() const; RWBoolean DComplexSchurEigServer::computeAllEigenVectors() const;
Returns TRUE if this server is configured to compute all the eigenvectors.
RWBoolean DoubleSchurEigServer::computeLeftEigenVectors() const; RWBoolean DComplexSchurEigServer::computeLeftEigenVectors() const;
Returns whether or not this server is configured to compute the left eigenvectors.
RWBoolean DoubleSchurEigServer::computeLeftEigenVectors(RWBoolean); RWBoolean DComplexSchurEigServer::computeLeftEigenVectors(RWBoolean);
Configures whether or not left eigenvectors are to be computed.
RWBoolean DoubleSchurEigServer::computeRightEigenVectors() const; RWBoolean DComplexSchurEigServer::computeRightEigenVectors() const;
Returns whether or not this server is configured to compute the right eigenvectors.
RWBoolean DoubleSchurEigServer::computeRightEigenVectors(RWBoolean); RWBoolean DComplexSchurEigServer::computeRightEigenVectors(RWBoolean);
Configures whether or not right eigenvectors are to be computed.
RWBoolean DoubleSchurEigServer::scale() const; RWBoolean DComplexSchurEigServer::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 DoubleSchurEigServer::scale(RWBoolean) const; void DComplexSchurEigServer::scale(RWBoolean) const;
Configures whether or not to do a scaling transformation before computing the eigenvalues. Sometimes this transformation can result in more accurate eigenvalues.
void DoubleSchurEigServer::selectEigenVectors(const RWMathVec<int>&); void DoubleSchurEigServer::selectEigenVectors(const RWSlice&); void DComplexSchurEigServer::selectEigenVectors(const RWMathVec<int>&); void DComplexSchurEigServer::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.
RWBoolean DoubleSchurEigServer::permute() const; RWBoolean DComplexSchurEigServer::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 DoubleSchurEigServer::permute(RWBoolean) const; void DComplexSchurEigServer::permute(RWBoolean) const;
Configures whether or not to do a permutation transformation before computing the eigenvalues. Sometimes this can result in less computation.
DoubleEigDecomp operator()(const RWGenMat<double>&); DoubleEigDecomp operator()(const DoubleBalanceDecomp&); DoubleEigDecomp operator()(const DoubleHessenbergDecomp&); DoubleEigDecomp operator()(const DoubleSchurDecomp&); DComplexEigDecomp operator()(const RWGenMat<DComplex>&); DComplexEigDecomp operator()(const DcomplexBalanceDecomp&); DComplexEigDecomp operator()(const DcomplexHessenbergDecomp&); DComplexEigDecomp operator()(const DcomplexSchurDecomp&);
Computes an eigenvalue decomposition. The matrix to be decomposed can be represented as any of the above argument types.
©Copyright 1999, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.