potrf_batch

Computes the Cholesky factorizations of a batch of symmetric (Hermitian) positive-definite matrices.

potrf_batch supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

Description

The routine forms the Cholesky factorizations of a batch of symmetric positive-definite or, for complex data, Hermitian positive-definite matrices A1, A2, …, A1batch_size

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.

potrf_batch (BUFFER Version)

Syntax

void onemkl::lapack::potrf_batch(cl::sycl::queue &queue, std::vector<onemkl::uplo> const &uplo, 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>> &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]).

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] (n[i]≤lda[i]).

Output Parameters

a

a[i] is overwritten by the Cholesky factor Ui or Li, as specified by uplo[i] .

info

Vector of buffers containing error information.

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

If info[i]=k, the leading minor of order k (and therefore the matrix Ai itself) is not positive-definite, and the factorization could not be completed. This may indicate an error in forming the matrix Ai.

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