orgqr_batch

Generates the orthogonal/unitary matrix Qi of the QR factorizations for a group of general matrices.

orgqr_batch supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

Description

The routine generates the whole or part of the orthogonal/unitary matrices Q1, Q2, …, Qbatch_size of the QR factorizations formed by the routine geqrf_batch. Use this routine after a call to geqrf_batch.

Usually Qi is determined from the QR factorization of an mi-by-pi matrix Ai with mipi. To compute the whole matrix Qi, use:

m[i]

mi

n[i]

mi

k[i]

pi

To compute the leading pi columns of Qi (which form an orthonormal basis in the space spanned by the columns of Ai):

m[i]

mi

n[i]

pi

k[i]

pi

To compute the matrix Qki of the QR factorization of the leading ki columns of the matrix Ai:

m[i]

mi

n[i]

mi

k[i]

ki

To compute the leading ki columns of Qki (which form an orthonormal basis in the space spanned by the leading ki columns of the matrix Ai):

m[i]

mi

n[i]

ki

k[i]

ki

orgqr_batch (BUFFER Version)

Syntax

void onemkl::lapack::orgqr_batch(cl::sycl::queue &queue, std::vector<std::int64_t> const &m, std::vector<std::int64_t> const &n, std::vector<std::int64_t> const &k, std::vector<cl::sycl::buffer<T, 1>> &a, std::vector<std::int64_t> const &lda, std::vector<cl::sycl::buffer<T, 1>> &tau, std::vector<cl::sycl::buffer<std::int64_t, 1>> &info)

Input Parameters

queue

The queue where the routine should be executed.

m

A vector, m[i] is the order of the unitary matrix Qi(0≤m[i]).

n

A vector, n[i] is the number of columns of Qi to be computed (0≤n[i]≤m[i]).

k

A vector, k[i] is the number of elementary reflectors whose product defines the matrix Qi(0≤k[i]≤n[i]).

a

A vector of buffers as returned by geqrf_batch. a[i] must be of size at least lda[i]*max(1, n[i]).

lda

A vector, lda[i] is the leading dimension of a[i] (m[i]≤lda[i]).

tau

A vector of buffers tau for storing scalars defining elementary reflectors, as returned by geqrf_batch.

Output Parameters

a

a[i] is overwritten by n[i] leading columns of the m[i]-by-m[i] orthogonal matrix Qi.

info

Vector of buffers containing error information.

If info[i]=0, the execution is successful.

If info[i]=-k, the k-th parameter had an illegal value.