Rogue Wave banner
Previous fileTop of DocumentContentsIndexNext file

{type}QRDecomp



Data Type and Member Function Indexes
(exclusive of constructors and destructors)

Synopsis

#include <rw/dqr.h>          // DoubleQRDecomp
#include <rw/fqr.h>          // FloatQRDecomp
#include <rw/cqr.h>          // DComplexQRDecomp

DoubleQRDecomp qr(A);        // A is a RWGenMat<double>

Description

A QR decomposition is a representation of a matrix A of the form:

where P is a permutation matrix, Q is orthogonal, and R is upper trapezoidal, or upper triangular if A is full rank, with no more columns than rows.

The classes {TYPE}QRDecomp are used to construct and work with QR decompositions. Sometimes it is desirable to zero out the rectangular part of the trapezoidal matrix R; this can be done using the complete orthogonal decomposition classes, {TYPE}QRDecomp. A common use of QR decompositions is to solve linear least squares problems; this is most conveniently done using the {TYPE}LeastSqQR class.

You may need more control over the computation of the decomposition than is provided by this class. For example, if you don't want to use pivoting, you can use the QR decomposition server classes, {TYPE}QRDecompServer, to do the construction.

Example

Public Constructors

DoubleQRDecomp();
FloatQRDecomp();
DComplexQRDecomp();
DoubleQRDecomp(const DoubleQRDecomp& A);
FloatQRDecomp(const FloatQRDecomp& A);
DComplexQRDecomp(const DComplexQRDecomp& A);
DoubleQRDecomp(const RWGenMat<double>& A);
FloatQRDecomp(const RWGenMat<float>& A);
DComplexQRDecomp(const RWGenMat<DComplex>& A);

Public Member Functions

unsigned
FloatQRDecomp::cols();
unsigned
DoubleQRDecomp::cols();
unsigned
DComplexQRDecomp::cols();
void
DoubleQRDecomp::factor(const RWGenMat<double>& A);
void
FloatQRDecomp::factor(const RWGenMat<float>& A);
void
DComplexQRDecomp::factor(const RWGenMat<DComplex>& A);
RWGenMat<float>
FloatQRDecomp::P();
RWGenMat<double>
DoubleQRDecomp::P();
RWGenMat<DComplex>
DComplexQRDecomp::P();
RWMathVec<float>
FloatQRDecomp::Px(const RWMathVec<float>& x);
RWMathVec<float>
FloatQRDecomp::PTx(const RWMathVec<float>& x);
RWMathVec<double>
DoubleQRDecomp::Px(const RWMathVec<double>& x);
RWMathVec<double>
DoubleQRDecomp::PTx(const RWMathVec<double>& x);
RWMathVec<DComplex>
DComplexQRDecomp::Px(const RWMathVec<DComplex>& x);
RWMathVec<DComplex>
DComplexQRDecomp::PTx(const RWMathVec<DComplex>& x);
RWGenMat<float>
FloatQRDecomp::Q();
RWGenMat<double>
DoubleQRDecomp::Q();
RWGenMat<DComplex>
DComplexQRDecomp::Q();
RWMathVec<float>
FloatQRDecomp::Qx(const RWMathVec<float>& x);
RWMathVec<float>
FloatQRDecomp::QTx(const RWMathVec<float>& x);
RWMathVec<double>
DoubleQRDecomp::Qx(const RWMathVec<double>& x);
RWMathVec<double>
DoubleQRDecomp::QTx(const RWMathVec<double>& x);
RWMathVec<DComplex>
DComplexQRDecomp::Qx(const RWMathVec<DComplex>& x);
RWMathVec<DComplex>
DComplexQRDecomp::QTx(const RWMathVec<DComplex>& x);
RWGenMat<float>
FloatQRDecomp::R();
RWGenMat<double>
DoubleQRDecomp::R();
RWGenMat<DComplex>
DComplexQRDecomp::R();
RWMathVec<float>
FloatQRDecomp::Rdiagonal();
RWMathVec<double>
DoubleQRDecomp::Rdiagonal();
RWMathVec<DComplex>
DComplexQRDecomp::Rdiagonal();
RWMathVec<float> 
FloatQRDecomp::Rx(const RWMathVec<float>& x);
RWMathVec<float>
FloatQRDecomp::RTx(const RWMathVec<float>& x);
RWMathVec<float> 
FloatQRDecomp::Rinvx(const RWMathVec<float>& x);
RWMathVec<float> 
FloatQRDecomp::RTinvx(const RWMathVec<float>& x);
RWMathVec<double>
DoubleQRDecomp::Rx(const RWMathVec<double>& x);
RWMathVec<double> 
DoubleQRDecomp::RTx(const RWMathVec<double>& x);
RWMathVec<double>
DoubleQRDecomp::Rinvx(const RWMathVec<double>& x);
RWMathVec<double>
DoubleQRDecomp::RTinvx(const RWMathVec<double>& x);
RWMathVec<DComplex>
DComplexQRDecomp::Rx(const RWMathVec<DComplex>& x);
RWMathVec<DComplex>
DComplexQRDecomp::RTx(const RWMathVec<DComplex>& x);
RWMathVec<DComplex>
DComplexQRDecomp::Rinvx(const RWMathVec<DComplex>& x);
RWMathVec<DComplex>
DComplexQRDecomp::RTinvx(const RWMathVec<DComplex>& x);
unsigned
FloatQRDecomp::rows();
unsigned
DoubleQRDecomp::rows();
unsigned
DComplexQRDecomp::rows();

Public Member Operators

void
FloatQRDecomp::operator=(const FloatQRDecomp&);
void
DoubleQRDecomp::operator=(const DoubleQRDecomp&);
void
DComplexQRDecomp::operator=(const DComplexQRDecomp&);


Previous fileTop of DocumentContentsIndexNext file

©Copyright 1999, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.