Kinds of Classes
The classes of the Linear Algebra Module represent the following entities of linear algebra:
*Vectors. The Linear Algebra Module uses the vector classes from the Essential Math Module.
*Matrices. 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.
*Factorizations. 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.
*Symmetric eigenvalue decompositions. A number of objects are available for solving symmetric eigenvalue problems. At the most basic level, you can construct an object that represents the eigenvalue decomposition of a symmetric or symmetric banded matrix. At a more advanced level, you can control the computation of the decomposition through server objects. At the most advanced level, you can use servers along with tridiagonal decomposition objects to implement your own eigenvalue servers.
*Nonsymmetric eigenvalue decompositions. Just as in the symmetric case, a number of decompositions and servers are available 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.
*Least squares factorizations. The least squares factorization classes allow you to find the best solution to an overdetermined or underdetermined system of equations. These classes are particularly useful for fitting multiparameter models to some data. By specifying the known accuracy of the data, you can avoid the problems of ill-conditioning that can occur due to near singularity. Several implementations of these classes are provided, each with the same interface but a different underlying implementation. You can pick the one best suited for your problem.
*Decomposition objects. Classes are provided to allow construction and manipulation of QR, complete orthogonal, and singular value decompositions. By using an SVD server object, you can adjust the SVD computation parameters without worrying about long parameter lists.