#include "MatrixDecomposition/geqrf.hpp"
template < typename T, int NRMAX, int NCMAX, int NCU > int geqrf ( int m, int n, T* A, int lda, T* tau )
This function computes QR decomposition of matrix \(A\)
\[\begin{equation*} {A = Q R}\end{equation*}\]
where \(A\) is a dense matrix of size \(m \times n\) , \(Q\) is a \(m \times n\) matrix with orthonormal columns, and \(R\) is an upper triangular matrix.
The maximum matrix size supported in FPGA is templated by NRMAX and NCMAX.
Parameters:
T | data type (support float and double) |
NRMAX | maximum number of rows of input matrix |
NCMAX | maximum number of columns of input matrix |
NCU | number of computation unit, NCU = n will be n times faster than NCU = 1, and cost n times resource. |
m | number of rows of matrix A |
n | number of cols of matrix A |
A | input matrix of size \(m \times lda\) , and overwritten by the output triangular R matrix and min(m,n) elementary reflectors |
lda | leading dimension of matrix A |
tau | scalar factors for elementary reflectors |