ungqr_batch (Buffer Strided Version)
Generates the complex unitary matrices Q
i
of the batch of QR
factorizations formed by geqrf_batch
function (Buffer stride version).
This routine belongs to the oneapi::mkl::lapack
namespace.Description
The routine generates the wholes or parts of
m
-by-m
unitary
matrix Q
i
of the QR
factorization formed by the
geqrf_batch (Buffer Strided Version)
function.Usually
Q
i
is determined from the QR
factorization
of an m
by p
matrix A
i
with m≥p
. To compute
the whole matrices Q
i
, use:ungqr_batch(queue, m, m, p, a, ...)
To compute the leading
p
columns of Q
i
(which form
an orthonormal basis in the space spanned by the columns of
A
i
):ungqr_batch(queue, m, p, p, a, ...)
To compute the matrix
Q
i
k
of the QR
factorization of the leading k
columns of the matrices
A
i
:ungqr_batch(queue, m, m, k, a, ...)
To compute the leading
k
columns of Q
i
k
(which form an orthonormal basis in the space spanned by the leading
k
columns of the matrices A
i
):ungqr_batch(queue, m, k, k, a, ...)
API
Syntax
namespace oneapi::mkl::lapack {
void ungqr_batch(cl::sycl::queue &queue,
std::int64_t m,
std::int64_t n,
std::int64_t k,
cl::sycl::buffer<T> &a,
std::int64_t lda,
std::int64_t stride_a,
cl::sycl::buffer<T> &tau,
std::int64_t stride_tau,
std::int64_t batch_size,
cl::sycl::buffer<T> &scratchpad,
std::int64_t scratchpad_size)
}
Function supports the following precisions and devices.
T | Devices supported |
---|---|
std::complex<float> | Host, CPU, and GPU |
std::complex<double> | Host, CPU, and GPU |
Input Parameters
- queue
- Device queue where calculations will be performed.
- m
- The number of rows in the matricesAi(0 ≤ m).
- n
- The number of columns in the matricesAi(0 ≤ n).
- k
- the number of elementary reflectors whose product defines the matricesQi(0 ≤k≤n) .
- a
- Array resulting after a call to geqrf_batch (Buffer Strided Version).
- lda
- The leading dimension ofAi(lda≤m).
- stride_a
- The stride between the beginnings of matricesAiinside the batch arraya.
- tau
- Array resulting after a call to geqrf_batch (Buffer Strided Version).
- stride_tau
- The stride between the beginnings of arraystauiinside the arraytau.
- batch_size
- Specifies the number of problems in a batch.
- scratchpad
- Scratchpad memory to be used by routine for storing intermediate results.
- scratchpad_size
- Size of scratchpad memory as a number of floating point elements of typeT. Size should not be less than the value returned by ungqr_batch_scratchpad_size (Strided Version).
Output Parameters
- a
- Array data is overwritten by a batch ofnleading columns of them-by-munitary matricesQi.
Exceptions
Exception | Description |
---|---|
mkl::lapack::batch_exception | 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 info = -n , the n -th parameter had an illegal value.If info equals the value passed as scratchpad size, and detail() returns non-zero, then the passed scratchpad is of insufficient size, and the required size should be not less then value returned by the detail() method of the exception object. |