# DSPF_sp_qrd_cmplx [Matrix]

Collaboration diagram for DSPF_sp_qrd_cmplx:

## Modules

DSPF_sp_qrd_inverse
DSPF_sp_qrd_solver
int DSPF_sp_qrd_cmplx (const int Nrows, const int Ncols, float *restrict A, float *restrict Q, float *restrict R, float *restrict u)

## Function Documentation

 int DSPF_sp_qrd_cmplx ( const int Nrows, const int Ncols, float *restrict A, float *restrict Q, float *restrict R, float *restrict u )

This function decomposes the rectangular complex matrix A into an orthogonal Q matrix and an upper right triangular matrix R such that A=Q*R. The Householder algorithm is used to zero columns below the diagonal in the original A matrix to produce the R matrix. The Q matrix is generated during the process. The values stored in the matrices are assumed to be float precision floating point values. This code is suitable for dense matrices. No optimizations are made for sparse matrices.

Parameters:
 Nrows = number of rows of matrix A Ncols = number of columns of matrix A A = pointer to matrix A[Nrows*2*Ncols] Q = pointer to matrix Q[Nrows*2*Nrows] R = pointer to upper triangular matrix R[Nrows*2*Ncols] u = pointer to temporary vector u[max(2*Nrows,2*Ncols)]
Algorithm:
DSPF_sp_qrd_complex_cn.c is the natural C equivalent of the optimized intrinsic C code without restrictions. Note that the intrinsic C code is optimized and restrictions may apply.
Assumptions:
1. The arrays A, Q, R, and u are stored in distinct arrays. In-place processing is not done.
2. The arrays consist of complex number entries with alternating real and imaginary parts: real0,imag0,real1,imag1,...
Implementation Notes:
Interruptibility : The code is interruptible.
Endian support : supports both Little and Big endian modes.