potrs_batch

Solves a system of linear equations with a batch of Cholesky-factored symmetric (Hermitian) positive-definite coefficient matrices.

potrs_batch supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

Description

The routine solves for Xi , in batch fashion, the system of linear equations Ai*Xi = Bi with a symmetric positive-definite or, for complex data, Hermitian positive-definite matrix A, given the Cholesky factorization of A:

Ai = UiT * Ui for real data, If uplo[i] = onemkl::uplo::upper

Ai = UiH * Ui for complex data.

Ai = LiT * Li for real data, If uplo[i] = onemkl::uplo::lower

Ai = LiH * Li for complex data.

Where Li is a lower triangular matrix and Ui is an upper triangular matrix.

potrs_batch (BUFFER Version)

Syntax

void onemkl::lapack::potrs_batch(cl::sycl::queue &queue, std::vector<onemkl::uplo> const &uplo, std::vector<std::int64_t> const &n, std::vector<std::int64_t> const &nrhs, std::vector<cl::sycl::buffer<T, 1>> &a, std::vector<std::int64_t> const &lda, std::vector<cl::sycl::buffer<T, 1>> &b, std::vector<std::int64_t> const &ldb, std::vector<cl::sycl::buffer<std::int64_t, 1>> &info)

Input Parameters

queue

The queue where the routine should be executed.

uplo

A vector, uplo[i] indicates whether the upper or lower triangular part of the matrix Ai is stored and how Ai is factored:

If uplo = onemkl::upper, then buffer a[i] stores the upper triangular part of Ai and the strictly lower triangular part of the matrix is not referenced.

If uplo = onemkl::lower, then buffer a[i] stores the lower triangular part of Ai and the strictly upper triangular part of the matrix is not referenced.

n

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

nrhs

A vector, nrhs[i] is the number of right-hand sides (0≤nrhs).

a

A vector of buffers returned by potrf_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] (n[i]≤lda[i]).

b

A vector of buffers, b[i] contains the matrix Bi whose columns are the right-hand sides for the systems of equations. The second dimension of b[i] must be at least max(1,nrhs[i]).

ldb

A vector, ldb[i] is the leading dimension of b[i].

Output Parameters

b

b[i] is overwritten by the solution matrix X[i].

info

Vector of buffers containing error information.

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

If info[i]=k, the k-th diagonal element of the Cholesky factor is zero and the solve could not be completed.

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