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