Skip to main content

dgeqrf

Function dgeqrf 

Source
pub fn dgeqrf(
    ctx: &Context,
    m: usize,
    n: usize,
    a: &mut DeviceMemory<f64>,
    lda: usize,
    tau: &mut DeviceMemory<f64>,
    workspace: &mut DeviceMemory<f64>,
    dev_info: &mut DeviceMemory<i32>,
) -> Result<()>
Expand description

Use the matching buffer-size helper to calculate the required workspace size.

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.

Computes the QR factorization of an $m \times n$ matrix

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.

Provide workspace through workspace. Use the corresponding *_buffer_size helper to query the required workspace length.

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 the Householder vector is assumed to be 1, so tau contains the scaling factor τ. If v is original householder vector, q is the new householder vector corresponding to τ, satisfying the following relation

If the reported dev_info value is -i, the ith parameter is invalid.

§Errors

Returns an error if cuSOLVER has not been initialized, if the matrix dimensions or leading dimension are invalid, if the current GPU architecture is unsupported, or if cuSOLVER reports an internal failure.