Decomposition Object
The basic object in the Linear Algebra Module nonsymmetric eigenvalue classes is the RWEigDecomp<double> object, which represents the eigenvalues and eigenvectors of a matrix. Here is a short program that reads a matrix from standard input, computes its eigenvalue decomposition, and prints out its eigenvalues and eigenvectors:
 
#include <iostream>
#include <rw/lapack/eig.h>
 
int main()
{
RWGenMat<double> A; // 1
std::cin >> A;
RWEigDecomp<double> decomp(A); // 2
std::cout << decomp.eigenValues() << std::endl; // 3
std::cout << decomp.leftEigenVectors() << std::endl; // 4
std::cout << decomp.rightEigenVectors() << std::endl;
 
return 0;
}
//1 A is defined to be a general dense matrix, and is read in from standard input.
//2 Here we construct an eigenvalue decomposition object decomp from the matrix. The decomposition object contains all the eigenvalues and eigenvectors, as well as information about whether these quantities are fully accurate and were successfully computed. See the SourcePro API Reference Guide for a complete description of the available member functions.
//3 We can access a vector containing all the eigenvalues as shown in this line. It is also possible to access one eigenvalue at a time, using the member function eigenValue(int).
//4 The next two lines print out matrices whose columns are the eigenvectors. You can also access a vector containing just one eigenvector using the member functions leftEigenVector(int) and rightEigenVector(int).