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

RWCODecomp<T,QRCalc>

Module:  Linear Algebra   Group:  Decomposition classes


Does not inherit

Local Index

Members

Synopsis

#include <rw/lapack/qrcalc3.h>
#include <rw/lapack/co.h>

RWCODecomp<double, RWQRCalcP3<double> > QTZ(A); // A is an RWGenMat<double>

Description

The class RWCODecomp<T,QRCalc> encapsulates a complete orthogonal decomposition. A complete orthogonal decomposition decomposes a general rectangular matrix A into the form:

where P is a permutation, Q and Z are orthogonal matrices, and T is an upper triangular matrix. This transformation is closely related to the QR transformation. The difference is that an extra orthogonal transformation, Z, is applied to zero out the columns to the right of T.


NOTE -- For greater flexibility, the user can implement this method, or the Linear Algebra Module provides two classes to perform this function - RWQRCalc<T> and RWQRCalcP3<T>. Please see their descriptions in this reference guide for more information.

Example

This decomposition is commonly used in the solution of least squares problems. The implementation of the Linear Algebra Module class RWLeastSqQR<T> uses the complete orthogonal transformation.

Public Constructors

RWCODecomp();
RWCODecomp(const RWCODecomp<T>& A);
RWCODecomp(const RWQRDecomp<T>& A, double tol=0);
RWCODecomp(const RWGenMat<T>& A, double tol=0);

Public Member Functions

unsigned
cols();
void
factor(const DoubleQRDecomp& A, double tol=0);
void
factor(const FloatQRDecomp& A, double tol=0);
void
factor(const DComplexQRDecomp& A, double tol=0);
void
factor(const RWGenMat<T>& A, double tol=0);
RWGenMat<T>
P();
RWMathVec<T>
Px(const RWMathVec<T>& x);
RWMathVec<T>
PTx(const RWMathVec<T>& x);
RWGenMat<T>
Q();
RWMathVec<T>
Qx(const RWMathVec<T>& x);
RWMathVec<T>
QTx(const RWMathVec<T>& x);
unsigned
rank();
unsigned
rows();
RWGenMat<T>
T();
RWMathVec<T>
Tx(const RWMathVec<T>& x);
RWMathVec<T>
TTx(const RWMathVec<T>& x);
RWMathVec<T>
Tinvx(const RWMathVec<T>& x);
RWMathVec<T>
TTinvx(const RWMathVec<T>& x);
RWGenMat<T>
Z();
RWMathVec<T>
Zx(const RWMathVec<T>& x);
RWMathVec<T>
ZTx(const RWMathVec<T>& x);


Previous fileTop of DocumentContentsIndex pageNext file

© Copyright Rogue Wave Software, Inc. All Rights Reserved.
Rogue Wave and SourcePro are registered trademarks of Rogue Wave Software, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.