getrs_batch¶
Solves a system of linear equations with a batch of LU-factored square coefficient matrices, with multiple right-hand sides.
getrs_batch
supports the following precisions.
T
float
double
std::complex<float>
std::complex<double>
Description
The routine solves for X
i the following systems of
linear equations for a batch of general square matrices
A
1, A
2, …,
A
:sub:`
batch_size`:
A
i * X
i = B
i If
trans[i] = onemkl::transpose::notrans
A
iT * X
i = B
i If
trans[i] = onemkl::transpose::trans
A
iH * X
i = B
i If
trans[i] = onemkl::transpose::conjtrans
Before calling this routine you must call
getrf_batch
to compute the LU factorization of A
1,
A
2, …, A
:sub:`
batch_size`.
getrs_batch (BUFFER Version)¶
Syntax
-
void
onemkl::lapack
::
getrs_batch
(cl::sycl::queue &queue, std::vector<onemkl::transpose> const &trans, 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<std::int64_t, 1>> &ipiv, 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.
- trans
A vector,
trans[i]
indicates the form of the linear equations.- n
A vector,
n[i]
is the number of columns of the batch matrixA
i(0≤n[i])
.- nrhs
A vector, the number of right hand sides
(0≤nrhs[i])
.- a
A vector of buffers returned by getrf_batch.
a[i]
must be of size at leastlda[i]*max(1, n[i])
.- lda
A vector,
lda[i]
is the leading dimension ofa[i] (n[i]≤lda[i])
.- ipiv
A vector of buffers, ipiv is the batch of pivots returned by getrf_batch.
- b
A vector of buffers,
b[i]
contains the matrixB
i whose columns are the right-hand sides for the systems of equations. The second dimension ofb
i must be at leastmax(1,nrhs[i])
.- ldb
A vector,
ldb[i]
is the leading dimension ofb[i]
.
Output Parameters
- b
A vector of buffers,
b[i]
is overwritten by the solution matrixX
i.- info
Vector of buffers containing error information.
If
info[i]=0
, the execution is successful.If
info[i]=k
, thek
-th diagonal element ofU
is zero, and the solve could not be completed.If
info[i]=-k
, thek
-th parameter had an illegal value.
Parent topic: LAPACK-like Extensions Routines