Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
Linear Algebra Module User's Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

2.3 Class Groups of the Linear Algebra Module

The classes of the Linear Algebra Module can be divided into the following class groups:

2.3.1 Math Vector Classes

The Linear Algebra Module uses the vector classes from the Essential Math Module. See RWMathVec<T> in the SourcePro C++ API Reference Guide. The Math Vector Classes are contained in Table 1.

Table 1: The Math Vector Classes

Class Name Description
RWMathVec<T> A templatized vector class.

2.3.2 Sparse Matrix Classes

The Linear Algebra Module classes represent a variety of matrix types, including: general, dense symmetric, skew symmetric, Hermitian, banded, symmetric banded, Hermitian banded, upper-triangular, lower-triangular, and tridiagonal. These classes are contained in Table 2.

Table 2: The Sparse Matrix Classes

Class Name Type Header Files
RWBandMat<T> A banded matrix. A banded matrix is nonzero only near the diagonal. rw/lapack/bandmat.h
RWHermBandMat<T> A Hermitian banded matrix. A Hermitian banded matrix is Hermitian, and nonzero only near the diagonal. rw/lapack/hbndmat.h
RWHermMat<T> A Hermitian dense matrix. A Hermitian matrix is defined by the requirement that Aij = conj(Aji). rw/lapack/hermmat.h
RWLowerTriMat<T> A lower triangular matrix. A lower triangular matrix is 0 above the diagonal. rw/lapack/ltrimat.h
RWSkewMat<T> A skew symmetric matrix. rw/lapack/skewmat.h
RWSymBandMat<T> A symmetric band matrix. A symmetric banded matrix is symmetric, and nonzero only near the diagonal. rw/lapack/sbndmat.h
RWSymMat<T> A symmetric matrix. A symmetric matrix is defined by the requirement that Aij = Aji, so a symmetric matrix is equal to its transpose. rw/lapack/symmat.h
RWTriDiagMat<T> A tridiagonal matrix. A tridiagonal matrix is nonzero only on the diagonal, the subdiagonal, and the superdiagonal. rw/lapack/trdgmat.h
RWUpperTriMat<T> An upper triangular matrix. An upper triangular matrix is 0 below the diagonal. rw/lapack/utrimat.h

2.3.3 Factorization Classes

Factorization objects provide an alternate representation of a system of equations which can be used for solving the system, computing determinants, estimating a condition number, or computing an inverse. Factorizations are provided for the following types of systems: general dense, positive definite symmetric, general symmetric, positive definite Hermitian, general Hermitian, banded, positive definite banded, tridiagonal, and positive definite tridiagonal. The Factorization Classes are contained in Table 3.

Table 3: The Factorization Classes

Class Name Type Header File
RWBandFact<T> Encapsulates factorizations of banded systems. rw/lapack/bandfct.h
RWPDBandFact<T> Encapsulates factorizations of positive definite banded systems. rw/lapack/pdbdfct.h
RWPDFact<T> Encapsulates factorizations of positive definite systems. rw/lapack/pdfct.h
RWPDTriDiagFact<T> Encapsulates factorizations of positive definite tridiagonal systems. rw/lapack/pdtdfct.h
RWHermFact<T> Encapsulates factorizations of general Hermitian systems. rw/lapack/hermfct.h
RWSymFact<T> Encapsulates factorizations of general symmetric systems. rw/lapack/symfct.h
RWTriDiagFact<T> Encapsulates factorizations of tridiagonal systems. rw/lapack/trdgfct.h

2.3.4 Symmetric Eigenvalue Decomposition Classes

The Linear Algebra Module provides a number of objects for solving symmetric eigenvalue problems. The Symmetric Eigenvalue Decomposition Classes are contained in Table 4.

Table 4: The Symmetric Eigenvalue Decomposition Classes

Class Name Type Header File
RWSymEigDecomp<T>, RWHermEigDecomp<T> Encapsulates the eigenvalues and eigenvectors of a symmetric matrix, a Hermitian in the complex case. rw/lapack/symeig.hrw/lapack/hermeig.h
RWSymEigServer<T> An abstract base class for the symmetric eigenvalue servers. rw/lapack/seigsrv.h
RWHermEigServer<T> An abstract base class for the Hermitian eigenvalue servers. rw/lapack/heigsrv.h
RWSymPDQREigServer<T>, RWHermPDQREigServer<T> Servers for the positive definite QR method of computing eigenvalues. These servers apply only to matrices that you know are positive definite. rw/lapack/seigsrv.hrw/lapack/heigsrv.h
RWSymQREigServer<T>, RWHermQREigServer<T> Servers for the QR method of computing eigenvalues. rw/lapack/seigsrv.hrw/lapack/heigsrv.h
RWSymRangeEigServer<T>, RWHermRangeEigServer<T> Symmetric eigenvalue server classes, which allow the computation of only the eigenvalues in a given range and (optionally) their corresponding eigenvectors.

rw/lapack/seigsrv.h

rw/lapack/heigsrv.h
RWSymRFQREigServer<T>, RWHermRFQREigServer<T> Servers for the root-free QR method of computing eigenvalues. This method computes all the eigenvalues and no eigenvectors.

rw/lapack/seigsrv.h

rw/lapack/heigsrv.h
RWSymSomeEigServer<T>, RWHermSomeEigServer<T> Symmetric eigenvalue server classes and the Hermitian eigenvalue server class, respectively, allow the computation of a subset of the eigenvalues and (optionally) their corresponding eigenvectors. rw/lapack/seigsrv.hrw/lapack/heigsrv.h
RWTriDiagDecomp<T> A tridiagonal decomposition of a symmetric matrix A: A=Q'TQ where Q is orthogonal and T is tridiagonal and real. rw/lapack/td.h

2.3.5 Nonsymmetric Eigenvalue Decomposition Classes

Just as in the symmetric case, the Linear Algebra Module provides a number of decompositions and servers in a carefully layered interface. In particular, you can construct and use the Schur and Hessenberg decompositions as easily as the more standard eigenvalue decomposition. The Nonsymmetric Eigenvalue Decomposition Classes are contained in Table 5.

Table 5: The Nonsymmetric Eigenvalue Decomposition Classes

Class Name Type Header Files
RWEigDecomp<T> Encapsulates the eigenvalues and eigenvectors of a nonsymmetric matrix. rw/lapack/eig.h
RWEigServer<T> Abstract base classes for the nonsymmetric eigenvalue servers. rw/lapack/eigsrv.h
RWHessEigServer<T> Encapsulates Hessenberg decomposition eigenvalue servers, which are used to construct eigenvalue decomposition objects. rw/lapack/eigsrv.h
RWHessenbergDecomp<T> Encapsulates a Hessenberg decomposition as well as an optional balance transformation. rw/lapack/hess.h
RWSchurDecomp<T> Encapsulates a Schur decomposition as well as an optional balance transformation. rw/lapack/schur.h
RWSchurEigServer<T> Encapsulates Schur decomposition eigenvalue servers which construct eigenvalue decomposition objects from Schur decompositions. rw/lapack/eigsrv.h

2.3.6 Least Squares Factorization Classes

The Least Squares Factorization Classes allow you to find the best solution to an over-determined or under-determined system of equations. These classes are contained in Table 6.

Table 6: The Least Squares Factorization Classes

Class Name Type Header File
RWLeastSqCh<T> Encapsulates a factorization object using a Ch factorization. rw/lapack/lsch.h
RWLeastSqQR<T,QRCalc> Encapsulates a factorization object using a QR factorization. rw/lapack/lsqr.h
RWLeastSqSV<T,SVDCalc> Encapsulates a factorization object using a SV factorization. rw/lapack/lssv.h

2.3.7 Decomposition Classes

The Decomposition Classes allow construction and manipulation of QR, complete orthogonal, and singular value decompositions. These classes are contained in Table 7:

Table 7: The Decomposition Classes

Class Name Type Header File
RWBalanceDecomp<T> A permutation and balance transformation performed on a nonsymmetric matrix before computing its eigenvalues. rw/lapack/bal.h
RWBalanceTransform<T> Encapsulates two transformations: a permutation and balance transformation performed on a nonsymmetric matrix before computing its eigenvalues. rw/lapack/bal.h
RWBandTriDiagDecomp<T> A symmetric tridiagonal decomposition of a symmetric banded matrix A: A=QTQ' where Q is orthogonal and T is real tridiagonal symmetric. rw/lapack/td.h
RWCODecomp<T,QRCalc> Encapsulates a complete orthogonal decomposition. rw/lapack/co.h
RWDenseTriDiagDecomp<T> The symmetric tridiagonal decomposition of a dense symmetric matrix A, where:A: A=QTQ' and Q is orthogonal and T is real tridiagonal symmetric. rw/lapack/td.h
RWQRCalc<T> Computes the QR decomposition of a matrix using LAPACK function xgeqpf or xgeqrf. rw/lapack/qrcalc.h
RWQRCalcP3<T> Computes the QR decomposition of a matrix using LAPACK function xgeqp3. rw/lapack/qrcalcp3.h
RWQRDecomp<T,QRCalc> Used to construct and work with QR decompositions or to solve linear least squares problems. rw/lapack/qr.h
RWQRDecompServer<T,QRCalc> A QR decomposition server used to construct instances of the QR decomposition classes, rw/lapack/qr.h
RWSVDCalc<T> Computes the singular value decomposition of a matrix. rw/lapack/svdcalc.h
RWSVDDivConqCalc<T> Computes the singular value decomposition of a matrix using divide-and-conquer. rw/lapack/svddccalc.h
RWSVDecomp<T,SVDCalc> Used to construct and work with singular value decompositions. rw/lapack/sv.h
RWSVServer<T,SVDCalc> Used to construct instances of the singular value decomposition class. rw/lapack/sv.h


Previous fileTop of DocumentContentsNo linkNext file

Copyright © Rogue Wave Software, Inc. All Rights Reserved.

The Rogue Wave name and logo, and SourcePro, are registered trademarks of Rogue Wave Software. All other trademarks are the property of their respective owners.
Provide feedback to Rogue Wave about its documentation.