LaGenQRFactComplex Class Reference

Represent a QR decomposition. More...

#include <gfqrc.h>

List of all members.

Public Member Functions

 LaGenQRFactComplex ()
 LaGenQRFactComplex (LaGenMatComplex &A)
 LaGenQRFactComplex (LaGenQRFactComplex &QR)
 ~LaGenQRFactComplex ()
void decomposeQR_IP (LaGenMatComplex &A)
LaGenMatComplexgenerateQ_IP ()
void generateQ (LaGenMatComplex &A) const
void Mat_Mult (LaGenMatComplex &C, bool hermitian, bool from_left) const

Detailed Description

Represent a QR decomposition.

This class calculates the QR factorization of a general m-by-n Matrix $A$ given by

\[ A = Q \left(\begin{array}{c}R\\ 0\end{array}\right) \]

for $m\geq n$, where $R$ is an n-by-n upper triangular matrix and $Q$ is an m-by-m unitary matrix. If $A$ is of full rank n, then $R$ is non-singular.

See for more details.

Constructor & Destructor Documentation

LaGenQRFactComplex::LaGenQRFactComplex (  ) 

Null constructor. Use decomposeQR_IP() to actually use this object.

LaGenQRFactComplex::LaGenQRFactComplex ( LaGenMatComplex A  ) 

Constructor that directly calculates the QR decomposition from the given matrix A, in-place. See decomposeQR_IP() for more about the implications of this.

LaGenQRFactComplex::LaGenQRFactComplex ( LaGenQRFactComplex QR  ) 

Copy constructor.

LaGenQRFactComplex::~LaGenQRFactComplex (  ) 

Default destructor.

Member Function Documentation

void LaGenQRFactComplex::decomposeQR_IP ( LaGenMatComplex A  ) 

Calculate the QR decomposition of A.

This is in-place, i.e. it destroys the input matrix A and keeps a reference to its memory around. In other words, you cannot do anything with your input matrix A anymore. You can safely delete any references to A because this object will keep its own references still around.

Internally this uses the lapack routine zgeqrf .

LaGenMatComplex& LaGenQRFactComplex::generateQ_IP (  ) 

Generate the matrix Q explicitly. This is in-place, i.e. it destroys the internal QR decomposition but only calculates the matrix Q.

Internally this uses the lapack routine zungqr .

void LaGenQRFactComplex::generateQ ( LaGenMatComplex A  )  const

Generate the matrix Q explicitly. The given matrix A will be overwritten by the matrix Q.

Internally this uses the lapack routine zungqr .

void LaGenQRFactComplex::Mat_Mult ( LaGenMatComplex C,
bool  hermitian,
bool  from_left 
) const

Multiply the matrix C by the matrix Q of the QR decomposition that is represented through this object. This method calculates one out of the following four different calculations:

This does not modify the internal QR decomposition, so this multiplication can be applied repeatedly.

Internally this uses the lapack routine zunmqr .

C The matrix to be multiplied.
hermitian If true, then $Q^H$ (hermitian, or conjugate transposed) is used. If false, then $Q$ is used directly.
from_left If true, then Q or $Q^H$ is applied from the left so that C=Q*C . If false, then Q is applied from the right so that C=C*Q .

Generated on Sat Jul 14 11:40:37 2007 for Lapack++ by  doxygen 1.5.0