Other Decompositions
Kinds of Decompositions
The decomposition classes of the Linear Algebra Module are low-level, concrete, efficient, implementations of the basic orthogonal decompositions of linear algebra. Three decompositions are directly supported:
*The singular value decomposition
*The QR decomposition
*The complete orthogonal decomposition.
Each of these decomposition classes is templatized on data types and a calculation class. The decomposition class uses the provided calculation class to perform the decomposition. For example, to construct a singular value decomposition object that uses the Lapack, version 3, divide and conquor algorithm to compute the decomposition, one would write:
 
RWSVDecomp< double, RWDDivConqCalc<double> > svd;
To construct a singular value decomposition object that uses the classic Lapack algorithm, one would write:
 
RWSVDecomp< double, RWSVDCalc<double> > svd:
You can even implement a decomposition class using a calculation class you create yourself. See Linear Algebra Module | Decomposition on the Modules tab of the SourcePro API Reference Guide for the decomposition classes and corresponding calculation classes.
An excellent use of these classes is as building blocks for classes meant to handle more specific sorts of problems. The least squares decomposition classes are an example of this approach.