![]() |
LIBDSP Version 4.1.9
LIBDSP Software Library
|

Functions | |
| tpt_status | tpt_mat_qr_f32 (const tpt_matrix_instance_f32 *aInMat, const f32_t threshold, tpt_matrix_instance_f32 *aOutR, tpt_matrix_instance_f32 *aOutQ, f32_t *aOutTau, f32_t *aTmpA, f32_t *aTmpB) |
| QR decomposition of a m x n floating point matrix with m >= n. | |
| tpt_status | tpt_mat_qr_f64 (const tpt_matrix_instance_f64 *aInMat, const f64_t threshold, tpt_matrix_instance_f64 *aOutR, tpt_matrix_instance_f64 *aOutQ, f64_t *aOutTau, f64_t *aTmpA, f64_t *aTmpB) |
| QR decomposition of a m x n double floating point matrix with m>= n. | |
Computes the QR decomposition of a matrix M using Householder algorithm.
![\[ M = Q R
\]](form_0.png)
where Q is an orthogonal matrix and R is upper triangular. No pivoting strategy is used.、 The returned value for R is using a format a bit similar to LAPACK : it is not just containing the matrix R but also the Householder reflectors. The function is also returning a vector 
![\[ \begin{pmatrix}
r_{11} & r_{12} & \dots & r_{1n} \\
v_{12} & r_{22} & \dots & r_{2n} \\
v_{13} & v_{22} & \dots & r_{3n} \\
\vdots & \vdots & \ddots & \vdots \\
v_{1m} & v_{2(m-1)} & \dots & r_{mn} \\
\end{pmatrix}
\]](form_2.png)
/// where///
![\[ v_1 =
\begin{pmatrix}
1 \\
v_{12} \\
\vdots \\
v_{1m} \\
\end{pmatrix}
\]](form_3.png)
is the first householder reflector. The Householder Matrix is given by 
![\[ H_1 = I - \tau_1 v_1 v_1^T
\]](form_5.png)
The Matrix Q is the product of the Householder matrices:
![\[ Q = H_1 H_2 \dots H_n
\]](form_6.png)
The computation of the matrix Q by this function is optional.
And the matrix R, would be the returned value R without the householder reflectors:
![\[ \begin{pmatrix}
r_{11} & r_{12} & \dots & r_{1n} \\
0 & r_{22} & \dots & r_{2n} \\
0 & 0 & \dots & r_{3n} \\
\vdots & \vdots & \ddots & \vdots \\
0 & 0 & \dots & r_{mn} \\
\end{pmatrix}
\]](form_7.png)
| tpt_status tpt_mat_qr_f32 | ( | const tpt_matrix_instance_f32 * | aInMat, |
| const f32_t | threshold, | ||
| tpt_matrix_instance_f32 * | aOutR, | ||
| tpt_matrix_instance_f32 * | aOutQ, | ||
| f32_t * | aOutTau, | ||
| f32_t * | aTmpA, | ||
| f32_t * | aTmpB ) |
QR decomposition of a m x n floating point matrix with m >= n.
QR decomposition of a matrix.
| [in] | aInMat | points to input matrix structure. The source matrix is modified by the function. |
| [in] | threshold | norm2 threshold. |
| [out] | aOutR | points to output R matrix structure of dimension m x n |
| [out] | aOutQ | points to output Q matrix structure of dimension m x m (can be NULL) |
| [out] | aOutTau | points to Householder scaling factors of dimension n |
| [in,out] | aTmpA | points to a temporary vector of dimension m. |
| [in,out] | aTmpB | points to a temporary vector of dimension m. |
| tpt_status tpt_mat_qr_f64 | ( | const tpt_matrix_instance_f64 * | aInMat, |
| const f64_t | threshold, | ||
| tpt_matrix_instance_f64 * | aOutR, | ||
| tpt_matrix_instance_f64 * | aOutQ, | ||
| f64_t * | aOutTau, | ||
| f64_t * | aTmpA, | ||
| f64_t * | aTmpB ) |
QR decomposition of a m x n double floating point matrix with m>= n.
QR decomposition of a matrix.
| [in] | aInMat | points to input matrix structure. The source matrix is modified by the function. |
| [in] | threshold | norm2 threshold. |
| [out] | aOutR | points to output R matrix structure of dimension m x n |
| [out] | aOutQ | points to output Q matrix structure of dimension m x m (can be NULL) |
| [out] | aOutTau | points to Householder scaling factors of dimension n |
| [in,out] | aTmpA | points to a temporary vector of dimension m. |
| [in,out] | aTmpB | points to a temporary vector of dimension m. |