Intel® oneAPI Math Kernel Library (oneMKL) - Data Parallel C++ Developer Reference
A newer version of this document is available. Customers should click here to go to the newest version.
getrs_batch (USM Strided Version)
Solves a system of linear equations with a batch of LU-factored square coefficient matrices, with multiple right-hand sides. This routine belongs to the oneapi::mkl::lapack namespace.
Description
The routine solves for Xi the following systems of linear equations:
Ai * Xi = Bi If trans = mkl::transpose::notrans
AiT * Xi = Bi If trans = mkl::transpose::trans
AiH * Xi = Bi If trans = mkl::transpose::conjtrans
Before calling this routine you must call getrf_batch (USM Strided Version) to compute the LU factorization of Ai.
API
Syntax
namespace oneapi::mkl::lapack {
  sycl::event getrs_batch(sycl::queue &queue,
  mkl::transpose trans,
  std::int64_t n,
  std::int64_t nrhs,
  T *a,
  std::int64_t lda,
  std::int64_t stride_a,
  std::int64_t *ipiv,
  std::int64_t stride_ipiv,
  T *b,
  std::int64_t ldb,
  std::int64_t stride_b,
  std::int64_t batch_size,
  T *scratchpad,
  std::int64_t scratchpad_size,
  const std::vector<sycl::event> &events = {})
} 
   This function supports the following precisions and devices:
T  |  
        Devices supported  |  
       
|---|---|
float  |  
        CPU and GPU  |  
       
double  |  
        CPU and GPU  |  
       
std::complex<float>  |  
        CPU and GPU  |  
       
std::complex<double>  |  
        CPU and GPU  |  
       
Input Parameters
- queue
 -  
     
Device queue where calculations will be performed.
 - trans
 -  
     
Indicates the form of the equations:
If trans = mkl::transpose::nontrans, then Ai*Xi = Bi is solved for Xi.
If trans = mkl::transpose::trans, then AiT*Xi = Bi is solved for Xi.
If trans = mkl::transpose::conjtrans, then AiH*Xi = Bi is solved for Xi.
 - n
 -  
     
The order of the matrices Ai and the number of rows in matrices Bi (0 ≤ n).
 - nrhs
 -  
     
The number of right hand sides (0 ≤ nrhs).
 - a
 -  
     
Array containing the factorizations of the matrices Ai, as returned by getrf_batch (USM Strided Version).
 - lda
 -  
     
The leading dimension of Ai.
 - stride_a
 -  
     
The stride between the beginnings of matrices Ai inside the batch array a.
 - ipiv
 -  
     
The ipiv array, as returned by getrf_batch (USM Strided Version).
 - stride_ipiv
 -  
     
The stride between the beginnings of arrays ipivi inside the array ipiv.
 - b
 -  
     
The array containing the matrices Bi whose columns are the right-hand sides for the systems of equations.
 - ldb
 -  
     
The leading dimensions of Bi.
 - stride_b
 -  
     
The stride between the beginnings of matrices Bi inside the batch array b.
 - batch_size
 -  
     
The number of problems in a batch.
 - scratchpad
 -  
     
Scratchpad memory to be used by routine for storing intermediate results.
 - scratchpad_size
 -  
     
Size of scratchpad memory as a number of floating point elements of type T. Size should not be less then the value returned by stride version of getrs_batch_scratchpad_size (Strided Version) function.
 - events
 -  
     
List of events to wait for before starting computation. Defaults to empty list.
 
Output Parameters
- b
 -  
     
Overwritten by the solution matrices Xi.
 
Exceptions
Exception  |  
        Description  |  
       
|---|---|
mkl::lapack::batch_exception  |  
        This exception is thrown when problems occur during calculations. You can obtain the info code of the problem using the info() method of the exception object: 
  |  
       
Return Values
Output event to wait on to ensure computation is complete.