SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
|
\(B = \alpha A B\) or \(B = \alpha B A\) where \(A\) is triangular More...
Functions | |
template<typename scalar_t > | |
void | slate::trmm (blas::Side side, scalar_t alpha, TriangularMatrix< scalar_t > &A, Matrix< scalar_t > &B, Options const &opts) |
Distributed parallel triangular matrix-matrix multiplication. | |
\(B = \alpha A B\) or \(B = \alpha B A\) where \(A\) is triangular
void slate::trmm | ( | blas::Side | side, |
scalar_t | alpha, | ||
TriangularMatrix< scalar_t > & | A, | ||
Matrix< scalar_t > & | B, | ||
Options const & | opts | ||
) |
Distributed parallel triangular matrix-matrix multiplication.
Performs one of the triangular matrix-matrix operations
\[ B = \alpha A B, \]
or
\[ B = \alpha B A, \]
where alpha is a scalar, B is an m-by-n matrix and A is a unit or non-unit, upper or lower triangular matrix. The matrices can be transposed or conjugate-transposed beforehand, e.g.,
auto AT = slate::transpose( A ); slate::trmm( Side::Left, alpha, AT, B );
Complexity (in real): \(m^{2} n\) flops.
scalar_t | One of float, double, std::complex<float>, std::complex<double>. |
[in] | side | Whether A appears on the left or on the right of B:
|
[in] | alpha | The scalar alpha. |
[in] | A |
|
[in,out] | B | On entry, the m-by-n matrix B. On exit, overwritten by the result \(\alpha A B\) or \(\alpha B A\). |
[in] | opts | Additional options, as map of name = value pairs. Possible options:
|