Skip to main content

cusolverDnDorgqr

Function cusolverDnDorgqr 

Source
pub unsafe extern "C" fn cusolverDnDorgqr(
    handle: cusolverDnHandle_t,
    m: c_int,
    n: c_int,
    k: c_int,
    A: *mut f64,
    lda: c_int,
    tau: *const f64,
    work: *mut f64,
    lwork: c_int,
    info: *mut c_int,
) -> cusolverStatus_t
Expand description

These helper functions calculate the size of work buffers needed. Please visit cuSOLVER Library Samples - orgqr for a code example.

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 overwrites $m \times n$ matrix A by: $$ Q = {H(1)}\{H(2)}\{…}\*{H(k)} $$

where Q is a unitary matrix formed by a sequence of elementary reflection vectors stored in A.

The user has to provide working space which is pointed by input parameter work. The input parameter lwork is size of the working space, and it is returned by orgqr_bufferSize(). Please note that the size in bytes of the working space is equal to sizeof(<type>) * lwork.

If output parameter devInfo = -i (less than zero), the i-th parameter is wrong (not counting handle).

The user can combine geqrf, orgqr to complete orthogonalization.