getrf_batch

Computes the LU factorizations of a batch of general matrices.

getrf_batch supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

Description

The routine computes the LU factorizations of a batch of general m-by-n matrices A1, A2, …, A1batch_size as

image0

Where Pi is a permutation matrix, Li is lower triangular with unit diagonal elements (lower trapezoidal if m > n) and U is upper triangular (upper trapezoidal if m < n). The routine uses partial pivoting with row interchanges.

getrf_batch (BUFFER Version)

Syntax

void onemkl::lapack::getrf_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<std::int64_t, 1>> &ipiv, 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] contains 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

a[i] is overwritten by Li and Ui. The unit diagonal elements of Li are not stored.

ipiv

A vector of buffers, ipiv[i] stores the pivot indices. The dimension of ipiv[i] must be at least min(m[i], n[i]).

info

Vector of buffers containing error information.

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

If info[i]=k, Ui(k,k) is 0. The factorization has been completed, but Ui is exactly singular. Division by 0 will occur if you use the factor Ui for solving a system of linear equations.