geqrf_batch

Computes the QR factorizations of a batch of general matrices.

geqrf_batch supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

Description

The routine forms the QR factorizations of a batch of general matrices A1, A2, …, Abatch_size. No pivoting is performed.

The routine does not form the matrices Qi explicitly. Instead, Qi is represented as a product of min(mi, ni) elementary reflectors. Routines are provided to work with Qi in this representation.

geqrf_batch (BUFFER Version)

Syntax

void onemkl::lapack::geqrf_batch(cl::sycl::queue &queue, std::vector<std::int64_t> const &m, std::vector<std::int64_t> const &n, 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 number of rows of the batch matrix Ai(0≤m[i]).

n

A vector, n[i] is the number of columns of the batch matrix Ai(0≤n[i]).

a

A vector of buffers, a[i] stores the matrix Ai. 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]).

Output Parameters

a

Overwritten by the factorization data as follows:

The elements on and above the diagonal of the buffer a[i] contain the min(m[i],n[i])-by-n[i] upper trapezoidal matrix Ri (Ri is upper triangular if m[i]≥n[i]); the elements below the diagonal, with the array tau[i], present the orthogonal matrix Qi as a product of min(m[i],n[i]) elementary reflectors.

tau

Vector of buffers, where tau[i] must have size at least max(1,min(m[i], n[i])). Contains scalars that define elementary reflectors for the matrix Qi in its decomposition in a product of elementary reflectors.

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.