trtrs#
Solves a system of linear equations with a triangular coefficient matrix, with multiple right-hand sides.
Description
trtrs supports the following precisions.
T
float
double
std::complex<float>
std::complex<double>
The routine solves for \(X\) the following systems of linear equations with a triangular matrix \(A\), with multiple right-hand sides stored in \(B\):
\(AX = B\)
if
transa=transpose::nontrans,\(A^TX = B\)
if
transa=transpose::trans,\(A^HX = B\)
if
transa=transpose::conjtrans(for complex matrices only).
trtrs (Buffer Version)#
Syntax
namespace oneapi::mkl::lapack {
  void trtrs(sycl::queue &queue, oneapi::mkl::uplo upper_lower, oneapi::mkl::transpose transa, oneapi::mkl::diag unit_diag, std::int64_t n, std::int64_t nrhs, sycl::buffer<T,1> &a, std::int64_t lda, sycl::buffer<T,1> &b, std::int64_t ldb, sycl::buffer<T,1> &scratchpad, std::int64_t scratchpad_size)
}
Input Parameters
- queue
- The queue where the routine should be executed. 
- upper_lower
- Indicates whether \(A\) is upper or lower triangular: - If upper_lower = - uplo::upper, then \(A\) is upper triangular.- If upper_lower = - uplo::lower, then \(A\) is lower triangular.
- transa
- If transa = - transpose::nontrans, then \(AX = B\) is solved for \(X\).- If transa = - transpose::trans, then \(A^{T}X = B\) is solved for \(X\).- If transa = - transpose::conjtrans, then \(A^{H}X = B\) is solved for \(X\).
- unit_diag
- If unit_diag = - diag::nonunit, then \(A\) is not a unit triangular matrix.- If unit_diag = - diag::unit, then \(A\) is unit triangular: diagonal elements of \(A\) are assumed to be 1 and not referenced in the array- a.
- n
- The order of \(A\); the number of rows in \(B\); \(n \ge 0\). 
- nrhs
- The number of right-hand sides; \(\text{nrhs} \ge 0\). 
- a
- Buffer containing the matrix \(A\). The second dimension of - amust be at least \(\max(1,n)\).
- lda
- The leading dimension of - a; \(\text{lda} \ge \max(1, n)\).
- b
- Buffer containing the matrix \(B\) whose columns are the right-hand sides for the systems of equations. The second dimension of - bat least \(\max(1,\text{nrhs})\).
- ldb
- The leading dimension of - b; \(\text{ldb} \ge \max(1, n)\).
- scratchpad_size
- Size of scratchpad memory as a number of floating point elements of type - T. Size should not be less than the value returned by trtrs_scratchpad_size function.
Output Parameters
- b
- Overwritten by the solution matrix \(X\). 
- scratchpad
- Buffer holding scratchpad memory to be used by routine for storing intermediate results. 
trtrs (USM Version)#
Syntax
namespace oneapi::mkl::lapack {
  sycl::event trtrs(sycl::queue &queue, oneapi::mkl::uplo upper_lower, oneapi::mkl::transpose transa, oneapi::mkl::diag unit_diag, std::int64_t n, std::int64_t nrhs, T *a, std::int64_t lda, T *b, std::int64_t ldb, T *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {})
}
Input Parameters
- queue
- The queue where the routine should be executed. 
- upper_lower
- Indicates whether \(A\) is upper or lower triangular: - If upper_lower = - uplo::upper, then \(A\) is upper triangular.- If upper_lower = - uplo::lower, then \(A\) is lower triangular.
- transa
- If transa = - transpose::nontrans, then \(AX = B\) is solved for \(X\).- If transa = - transpose::trans, then \(A^{T}X = B\) is solved for \(X\).- If transa = - transpose::conjtrans, then \(A^{H}X = B\) is solved for \(X\).
- unit_diag
- If unit_diag = - diag::nonunit, then \(A\) is not a unit triangular matrix.- If unit_diag = - diag::unit, then \(A\) is unit triangular: diagonal elements of \(A\) are assumed to be 1 and not referenced in the array- a.
- n
- The order of \(A\); the number of rows in \(B\); \(n \ge 0\). 
- nrhs
- The number of right-hand sides; \(\text{nrhs} \ge 0\). 
- a
- Array containing the matrix \(A\). The second dimension of - amust be at least \(\max(1,n)\).
- lda
- The leading dimension of - a; \(\text{lda} \ge \max(1, n)\).
- b
- Array containing the matrix \(B\) whose columns are the right-hand sides for the systems of equations. The second dimension of - bat least \(\max(1,\text{nrhs})\).
- ldb
- The leading dimension of - b; \(\text{ldb} \ge \max(1, n)\).
- scratchpad_size
- Size of scratchpad memory as a number of floating point elements of type - T. Size should not be less than the value returned by trtrs_scratchpad_size function.
- events
- List of events to wait for before starting computation. Defaults to empty list. 
Output Parameters
- b
- Overwritten by the solution matrix \(X\). 
- scratchpad
- Pointer to scratchpad memory to be used by routine for storing intermediate results. 
Return Values
Output event to wait on to ensure computation is complete.
Parent topic: LAPACK Linear Equation Routines
