pub unsafe extern "C" fn cusolverDnDgeqrf(
handle: cusolverDnHandle_t,
m: c_int,
n: c_int,
A: *mut f64,
lda: c_int,
TAU: *mut f64,
Workspace: *mut f64,
Lwork: c_int,
devInfo: *mut c_int,
) -> cusolverStatus_tExpand description
These helper functions calculate the size of work buffers needed.
The S and D data types are real valued single and double precision, respectively.
The C and Z data types are complex valued single and double precision, respectively.
This function computes the QR factorization of an $m \times n$ matrix: $$ A = Q\*R $$
where A is an $m \times n$ matrix, Q is an $m \times n$ matrix, and R is a $n \times n$ upper triangular matrix.
The user has to provide working space which is pointed by input parameter Workspace. The input parameter Lwork is size of the working space, and it is returned by geqrf_bufferSize().
The matrix R is overwritten in upper triangular part of A, including diagonal elements.
The matrix Q is not formed explicitly, instead, a sequence of householder vectors are stored in lower triangular part of A. The leading nonzero element of householder vector is assumed to be 1 such that output parameter TAU contains the scaling factor τ. If v is original householder vector, q is the new householder vector corresponding to τ, satisfying the following relation:
$$
I - 2\*v\*v^{H} = I - \tau\*q\*q^{H}
$$
If output parameter devInfo = -i (less than zero), the i-th parameter is wrong (not counting handle).