ARPACK-Armadillo
UpperHessenbergQR< Scalar > Class Template Reference

#include <UpperHessenbergQR.h>

Inheritance diagram for UpperHessenbergQR< Scalar >:
TridiagQR< Scalar >

Public Member Functions

 UpperHessenbergQR ()
 
 UpperHessenbergQR (const Matrix &mat)
 
virtual void compute (const Matrix &mat)
 
Matrix matrix_R ()
 
virtual Matrix matrix_RQ ()
 
void apply_QY (Vector &Y)
 
void apply_QtY (Vector &Y)
 
void apply_QY (Matrix &Y)
 
void apply_QtY (Matrix &Y)
 
void apply_YQ (Matrix &Y)
 
void apply_YQt (Matrix &Y)
 

Detailed Description

template<typename Scalar = double>
class UpperHessenbergQR< Scalar >

Perform the QR decomposition of an upper Hessenberg matrix.

Template Parameters
ScalarThe element type of the matrix. Currently supported types are float and double.

Definition at line 25 of file UpperHessenbergQR.h.

Constructor & Destructor Documentation

template<typename Scalar = double>
UpperHessenbergQR< Scalar >::UpperHessenbergQR ( )
inline

Default constructor. Computation can be performed later by calling the compute() method.

Definition at line 46 of file UpperHessenbergQR.h.

template<typename Scalar = double>
UpperHessenbergQR< Scalar >::UpperHessenbergQR ( const Matrix &  mat)
inline

Constructor to create an object that performs and stores the QR decomposition of an upper Hessenberg matrix mat.

Parameters
matMatrix type can be arma::mat or arma::fmat, depending on the template parameter Scalar defined. Only the upper triangular and the lower subdiagonal parts of the matrix are used.

Definition at line 59 of file UpperHessenbergQR.h.

Member Function Documentation

template<typename Scalar = double>
virtual void UpperHessenbergQR< Scalar >::compute ( const Matrix &  mat)
inlinevirtual

Conduct the QR factorization of an upper Hessenberg matrix.

Parameters
matMatrix type can be arma::mat or arma::fmat, depending on the template parameter Scalar defined. Only the upper triangular and the lower subdiagonal parts of the matrix are used.

Reimplemented in TridiagQR< Scalar >.

Definition at line 77 of file UpperHessenbergQR.h.

template<typename Scalar = double>
Matrix UpperHessenbergQR< Scalar >::matrix_R ( )
inline

Return the \(R\) matrix in the QR decomposition, which is an upper triangular matrix.

Returns
Returned matrix type will be arma::mat or arma::fmat, depending on the template parameter Scalar defined.

Definition at line 143 of file UpperHessenbergQR.h.

template<typename Scalar = double>
virtual Matrix UpperHessenbergQR< Scalar >::matrix_RQ ( )
inlinevirtual

Return the \(RQ\) matrix, the multiplication of \(R\) and \(Q\), which is an upper Hessenberg matrix.

Returns
Returned matrix type will be arma::mat or arma::fmat, depending on the template parameter Scalar defined.

Reimplemented in TridiagQR< Scalar >.

Definition at line 158 of file UpperHessenbergQR.h.

template<typename Scalar = double>
void UpperHessenbergQR< Scalar >::apply_QY ( Vector &  Y)
inline

Apply the \(Q\) matrix to a vector \(y\).

Parameters
YA vector that will be overwritten by the matrix product \(Qy\).

Vector type can be arma::vec or arma::fvec, depending on the template parameter Scalar defined.

Definition at line 203 of file UpperHessenbergQR.h.

template<typename Scalar = double>
void UpperHessenbergQR< Scalar >::apply_QtY ( Vector &  Y)
inline

Apply the \(Q\) matrix to a vector \(y\).

Parameters
YA vector that will be overwritten by the matrix product \(Q'y\).

Vector type can be arma::vec or arma::fvec, depending on the template parameter Scalar defined.

Definition at line 229 of file UpperHessenbergQR.h.

template<typename Scalar = double>
void UpperHessenbergQR< Scalar >::apply_QY ( Matrix &  Y)
inline

Apply the \(Q\) matrix to another matrix \(Y\).

Parameters
YA matrix that will be overwritten by the matrix product \(QY\).

Matrix type can be arma::mat or arma::fmat, depending on the template parameter Scalar defined.

Definition at line 255 of file UpperHessenbergQR.h.

template<typename Scalar = double>
void UpperHessenbergQR< Scalar >::apply_QtY ( Matrix &  Y)
inline

Apply the \(Q\) matrix to another matrix \(Y\).

Parameters
YA matrix that will be overwritten by the matrix product \(Q'Y\).

Matrix type can be arma::mat or arma::fmat, depending on the template parameter Scalar defined.

Definition at line 286 of file UpperHessenbergQR.h.

template<typename Scalar = double>
void UpperHessenbergQR< Scalar >::apply_YQ ( Matrix &  Y)
inline

Apply the \(Q\) matrix to another matrix \(Y\).

Parameters
YA matrix that will be overwritten by the matrix product \(YQ\).

Matrix type can be arma::mat or arma::fmat, depending on the template parameter Scalar defined.

Definition at line 317 of file UpperHessenbergQR.h.

template<typename Scalar = double>
void UpperHessenbergQR< Scalar >::apply_YQt ( Matrix &  Y)
inline

Apply the \(Q\) matrix to another matrix \(Y\).

Parameters
YA matrix that will be overwritten by the matrix product \(YQ'\).

Matrix type can be arma::mat or arma::fmat, depending on the template parameter Scalar defined.

Definition at line 362 of file UpperHessenbergQR.h.


The documentation for this class was generated from the following file: