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 arraya
.- 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
a
must 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
b
at 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 arraya
.- 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
a
must 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
b
at 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