Skip to main content

sormqr

Function sormqr 

Source
pub fn sormqr(
    ctx: &Context,
    side: SideMode,
    operation: Operation,
    m: usize,
    n: usize,
    k: usize,
    a: &DeviceMemory<f32>,
    lda: usize,
    tau: &DeviceMemory<f32>,
    c: &mut DeviceMemory<f32>,
    ldc: usize,
    workspace: &mut DeviceMemory<f32>,
    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.

Applies the orthogonal matrix Q, represented by the elementary reflectors returned by geqrf, to C and stores the result in C.

operation selects whether Q is transposed.

Q is of order m if side = SideMode::Left and of order n if side = SideMode::Right.

Provide workspace through workspace. Use the corresponding *_buffer_size helper to query the required workspace length. The workspace size in bytes is size_of::<T>() * lwork.

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

Callers can combine geqrf, ormqr, and trsm to complete a linear solver or a least-square solver.

ยงErrors

Returns an error if cuSOLVER has not been initialized, if the matrix dimensions, reflector count, side/operation mode, or leading dimensions are invalid, if the current GPU architecture is unsupported, or if cuSOLVER reports an internal failure.