gerqf#
Computes the RQ factorization of a general m-by-n matrix. This routine
belongs to the oneapi::mkl::lapack namespace.
Description#
The routine forms the RQ factorization of a general
m-by-n matrix A No pivoting is performed.
The routine does not form the matrix Q explicitly. Instead, Q
is represented as a product of min(m, n) elementary
reflectors. Routines are provided to work with Q in this
representation.
Note
This routine supports the Progress Routine feature.
API#
Syntax#
namespace oneapi::mkl::lapack {
void gerqf(sycl::queue &queue,
int64_t m,
int64_t n,
sycl::buffer<T> &a,
int64_t lda,
sycl::buffer<T> &tau,
sycl::buffer<T> &scratchpad,
int64_t scratchpad_size)
}
gerqf supports the following precisions and devices:
T |
Devices supported |
|---|---|
|
CPU |
|
CPU |
|
CPU |
|
CPU |
Input Parameters#
- queue
Device queue where calculations will be performed.
- m
The number of rows in the matrix
A(0 ≤ m).- n
The number of columns in the matrix
A(0 ≤ n).- a
Buffer holding input matrix
A. The buffer must have size at leastlda*n.- lda
The leading dimension of
a, at leastmax(1, m).- scratchpad
Buffer holding scratchpad memory to be used by the routine for storing intermediate results.
- scratchpad_size
Size of scratchpad memory as a number of floating point elements of type
T. Size should not be less than the value returned by the gerqf_scratchpad_size function.
Output Parameters#
- a
Overwritten by the factorization data as follows:
if
m ≤ n, the upper triangle of the subarraya(1:m, n-m+1:n )contains them-by-mupper triangular matrixR; ifm ≥ n, the elements on and above the (m-n)-th subdiagonal contain them-by-nupper trapezoidal matrixRIn both cases, the remaining elements, with the array
tau, represent the orthogonal/unitary matrixQas a product ofmin(m,n)elementary reflectors.- tau
Array, size at least
min(m,n).Contains scalars that define elementary reflectors for the matrix
Qin its decomposition in a product of elementary reflectors.
Exceptions#
Exception |
Description |
|---|---|
|
This exception is thrown when problems occur during calculations. You can obtain the info code of the problem using the info() method of the exception object: If If |