trsm (USM Version)¶
Solves a triangular matrix equation (forward or backward solve).
Description¶
The trsm
routines solve one of the following matrix equations:
or
where:
op(
A
) is one of op(A
) =A
, or op(A
) =A
T, or op(A
) =A
H,alpha
is a scalar,A
is a triangular matrix, andB
andX
arem
xn
general matrices.
A
is either m
x m
or n
x n
, depending on whether
it multiplies X
on the left or right. On return, the matrix B
is overwritten by the solution matrix X
.
API¶
Syntax¶
event trsm(queue &exec_queue,
side left_right,
uplo upper_lower,
transpose transa,
diag unit_diag,
std::int64_t m,
std::int64_t n,
T alpha,
const T* a,
std::int64_t lda,
T* b,
std::int64_t ldb,
const vector_class<event> &dependencies = {})
The USM version of trsm supports the following precisions and devices:
T |
Devices Supported |
---|---|
|
Host, CPU, and GPU |
|
Host, CPU, and GPU |
|
Host, CPU, and GPU |
|
Host, CPU, and GPU |
Input Parameters¶
- exec_queue
The queue where the routine should be executed.
- left_right
Specifies whether
A
multipliesX
on the left (side::left
) or on the right (side::right
). See Data Types for more details.- upper_lower
Specifies whether the matrix
A
is upper or lower triangular. See Data Types for more details.- transa
Specifies op(
A
), the transposition operation applied toA
. See Data Types for more details.- unit_diag
Specifies whether
A
is assumed to be unit triangular (all diagonal elements are 1). See Data Types for more details.- m
Specifies the number of rows of
B
. The value ofm
must be at least zero.- n
Specifies the number of columns of
B
. The value ofn
must be at least zero.- alpha
Scaling factor for the solution.
- a
Pointer to input matrix
A
. Must have size at leastlda
*m
ifleft_right
=side::left
, orlda
*n
ifleft_right
=side::right
. See Matrix and Vector Storage for more details. more details.- lda
Leading dimension of
A
. Must be at leastm
ifleft_right
=side::left
, and at leastn
ifleft_right
=side::right
. Must be positive.- b
Pointer to input/output matrix
B
. It must have size at leastldb
*n
if column major layout is used to store matrices or at leastldb
*m
if row major layout is used to store matrices. See Matrix and Vector Storage for more details.- ldb
Leading dimension of
B
. It must be positive and at leastm
if column major layout is used to store matrices or at leastn
if column major layout is used to store matrices.- dependencies
List of events to wait for before starting computation, if any. If omitted, defaults to no dependencies.
Output Parameters¶
- b
Pointer to the output matrix. Overwritten by the solution matrix
X
.Note
If
alpha
= 0, matrixB
is set to zero, andA
andB
do not need to be initialized at entry.
Return Values¶
Output event to wait on to ensure computation is complete.