trmm¶
Computes a matrix-matrix product where one input matrix is triangular and one input matrix is general.
trmmsupports the following precisions.
T
float
double
std::complex<float>
std::complex<double>
Description
The trmm routines compute a scalar-matrix-matrix product where one of
the matrices in the multiplication is triangular. The argument
left_right determines if the triangular matrix, A, is on the
left of the multiplication (left_right = side::left) or on
the right (left_right = side::right). Depending on
left_right. The operation is defined as
B <- alpha*op(A)*B
or
B <- alpha*B*op(A)
where:
op(A) is one of op(A) = A, or op(A) = AT,
or op(A) = AH,
alpha is a scalar,
A is a triangular matrix, and B is a general matrix.
Here B is m x n and A is either m x m or
n x n, depending on left_right.
trmm (Buffer Version)¶
Syntax
-
void
onemkl::blas::trmm(sycl::queue &queue, onemkl::uplo upper_lower, onemkl::transpose transa, onemkl::diag unit_diag, std::int64_t m, std::int64_t n, T alpha, sycl::buffer<T, 1> &a, std::int64_t lda, sycl::buffer<T, 1> &b, std::int64_t ldb)¶
Input Parameters
- queue
The queue where the routine should be executed.
- left_right
Specifies whether
Ais on the left side of the multiplication (side::left) or on the right side (side::right). See oneMKL defined datatypes for more details.- uplo
Specifies whether the matrix
Ais upper or lower triangular. See oneMKL defined datatypes for more details.- trans
Specifies op(
A), the transposition operation applied toA. See oneMKL defined datatypes for more details.- unit_diag
Specifies whether
Ais assumed to be unit triangular (all diagonal elements are 1). See oneMKL defined datatypes for more details.- m
Specifies the number of rows of
B. The value ofmmust be at least zero.- n
Specifies the number of columns of
B. The value ofnmust be at least zero.- alpha
Scaling factor for the matrix-matrix product.
- a
Buffer holding input matrix
A. Must have size at leastlda*mifleft_right=side::left, orlda*nifleft_right=side::right. See Matrix and Vector Storage for more details.- lda
Leading dimension of
A. Must be at leastmifleft_right=side::left, and at leastnifleft_right=side::right. Must be positive.- b
Buffer holding input/output matrix
B. Must have size at leastldb*n. See Matrix and Vector Storage for more details.- ldb
Leading dimension of
B. Must be at leastmand positive.
Output Parameters
- b
Output buffer, overwritten by
alpha*op(A)*Boralpha*B*op(A).
Notes
If alpha = 0, matrix B is set to zero, and A and B do
not need to be initialized at entry.
trmm (USM Version)¶
Syntax
-
sycl::event
onemkl::blas::trmm(sycl::queue &queue, onemkl::uplo upper_lower, onemkl::transpose transa, onemkl::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 sycl::vector_class<sycl::event> &dependencies = {})¶
Input Parameters
- queue
The queue where the routine should be executed.
- left_right
Specifies whether
Ais on the left side of the multiplication (side::left) or on the right side (side::right). See oneMKL defined datatypes for more details.- uplo
Specifies whether the matrix
Ais upper or lower triangular. See oneMKL defined datatypes for more details.- trans
Specifies op(
A), the transposition operation applied toA. See oneMKL defined datatypes for more details.- unit_diag
Specifies whether
Ais assumed to be unit triangular (all diagonal elements are 1). See oneMKL defined datatypes for more details.- m
Specifies the number of rows of
B. The value ofmmust be at least zero.- n
Specifies the number of columns of
B. The value ofnmust be at least zero.- alpha
Scaling factor for the matrix-matrix product.
- a
Pointer to input matrix
A. Must have size at leastlda*mifleft_right=side::left, orlda*nifleft_right=side::right. See Matrix and Vector Storage for more details.- lda
Leading dimension of
A. Must be at leastmifleft_right=side::left, and at leastnifleft_right=side::right. Must be positive.- b
Pointer to input/output matrix
B. Must have size at leastldb*n. See Matrix and Vector Storage for more details.- ldb
Leading dimension of
B. Must be at leastmand positive.- 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
alpha*op(A)*Boralpha*B*op(A).
Notes
If alpha = 0, matrix B is set to zero, and A and B
do not need to be initialized at entry.
Return Values
Output event to wait on to ensure computation is complete.
Parent topic: BLAS Level 3 Routines