Linear
Linear::QR< T, M, N, Flags > Struct Template Reference

Struct for QR decomposition. More...

#include <Decomp.h>

Public Member Functions

template<size_t P, size_t Q, unsigned int Flags2>
 QR (const Matrix< T, P, Q, Flags2 > &A)
 Constructor. More...
 
template<size_t P, size_t Q, unsigned int Flags2>
void Compute (Matrix< T, P, Q, Flags2 > A)
 Computes the QR decomposition. More...
 

Public Attributes

Matrix< T, M, N, Flags > Q
 
SquareMatrix< T, N, Flags > R
 

Detailed Description

template<typename T, size_t M, size_t N, unsigned int Flags = 0>
struct Linear::QR< T, M, N, Flags >

Struct for QR decomposition.

This struct finds MxN matrix Q, NxN matrix R such that \(A=QR\) and R is upper triangular. Moreover, if Q is square then Q is unitary.

Parameters
TType to store matrix entries as.
MNumber of rows for Q. Dynamic is allowed for M.
NNumber of columns for Q and R (R is square). Dynamic is allowed for N.
FlagsFlags to pass to the matrices (default = row major).

Constructor & Destructor Documentation

◆ QR()

template<typename T , size_t M, size_t N, unsigned int Flags = 0>
template<size_t P, size_t Q, unsigned int Flags2>
Linear::QR< T, M, N, Flags >::QR ( const Matrix< T, P, Q, Flags2 > &  A)
inline

Constructor.

Just calls Compute.

Parameters
APxQ Matrix

Member Function Documentation

◆ Compute()

template<typename T , size_t M, size_t N, unsigned int Flags = 0>
template<size_t P, size_t Q, unsigned int Flags2>
void Linear::QR< T, M, N, Flags >::Compute ( Matrix< T, P, Q, Flags2 >  A)
inline

Computes the QR decomposition.

If P != M or Q != N, then an exception is thrown.

Parameters
APxQ Matrix

Member Data Documentation

◆ Q

template<typename T , size_t M, size_t N, unsigned int Flags = 0>
Matrix<T,M,N,Flags> Linear::QR< T, M, N, Flags >::Q

Unitary when square

◆ R

template<typename T , size_t M, size_t N, unsigned int Flags = 0>
SquareMatrix<T,N,Flags> Linear::QR< T, M, N, Flags >::R

Upper triangular matrix


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