|
SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
|
\(C = \alpha A B + \beta C\) or \(C = \alpha B A + \beta C\) where \(A\) is Hermitian More...
Functions | |
| template<typename scalar_t > | |
| void | slate::hemm (Side side, scalar_t alpha, HermitianMatrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, Options const &opts) |
| Distributed parallel Hermitian matrix-matrix multiplication. | |
| template<typename scalar_t > | |
| void | slate::hemmA (Side side, scalar_t alpha, HermitianMatrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, Options const &opts) |
| Distributed parallel Hermitian matrix-matrix multiplication. | |
| template<typename scalar_t > | |
| void | slate::hemmC (Side side, scalar_t alpha, HermitianMatrix< scalar_t > &A, Matrix< scalar_t > &B, scalar_t beta, Matrix< scalar_t > &C, Options const &opts) |
| Distributed parallel Hermitian matrix-matrix multiplication. | |
\(C = \alpha A B + \beta C\) or \(C = \alpha B A + \beta C\) where \(A\) is Hermitian
| void slate::hemm | ( | Side | side, |
| scalar_t | alpha, | ||
| HermitianMatrix< scalar_t > & | A, | ||
| Matrix< scalar_t > & | B, | ||
| scalar_t | beta, | ||
| Matrix< scalar_t > & | C, | ||
| Options const & | opts | ||
| ) |
Distributed parallel Hermitian matrix-matrix multiplication.
Performs one of the matrix-matrix operations
\[ C = \alpha A B + \beta C \]
or
\[ C = \alpha B A + \beta C \]
where alpha and beta are scalars, A is a Hermitian matrix and B and C are m-by-n matrices.
Complexity (in real): \(2 m^{2} n\) flops.
| scalar_t | One of float, double, std::complex<float>, std::complex<double>. |
| [in] | side | Whether the Hermitian matrix A appears on the left or right:
|
| [in] | alpha | The scalar alpha. |
| [in] | A |
|
| [in] | B | The m-by-n matrix B. |
| [in] | beta | The scalar beta. |
| [in,out] | C | On entry, the m-by-n matrix C. On exit, overwritten by the result \(\alpha A B + \beta C\) or \(\alpha B A + \beta C\). |
| [in] | opts | Additional options, as map of name = value pairs. Possible options:
|
| void slate::hemmA | ( | Side | side, |
| scalar_t | alpha, | ||
| HermitianMatrix< scalar_t > & | A, | ||
| Matrix< scalar_t > & | B, | ||
| scalar_t | beta, | ||
| Matrix< scalar_t > & | C, | ||
| Options const & | opts | ||
| ) |
Distributed parallel Hermitian matrix-matrix multiplication.
Performs one of the matrix-matrix operations
\[ C = \alpha A B + \beta C \]
or
\[ C = \alpha B A + \beta C \]
where alpha and beta are scalars, A is a Hermitian matrix and B and C are m-by-n matrices.
| scalar_t | One of float, double, std::complex<float>, std::complex<double>. |
| [in] | side | Whether the Hermitian matrix A appears on the left or right:
|
| [in] | alpha | The scalar alpha. |
| [in] | A |
|
| [in] | B | The m-by-n matrix B. |
| [in] | beta | The scalar beta. |
| [in,out] | C | On entry, the m-by-n matrix C. On exit, overwritten by the result \(\alpha A B + \beta C\) or \(\alpha B A + \beta C\). |
| [in] | opts | Additional options, as map of name = value pairs. Possible options:
|
| void slate::hemmC | ( | Side | side, |
| scalar_t | alpha, | ||
| HermitianMatrix< scalar_t > & | A, | ||
| Matrix< scalar_t > & | B, | ||
| scalar_t | beta, | ||
| Matrix< scalar_t > & | C, | ||
| Options const & | opts | ||
| ) |
Distributed parallel Hermitian matrix-matrix multiplication.
Performs one of the matrix-matrix operations
\[ C = \alpha A B + \beta C \]
or
\[ C = \alpha B A + \beta C \]
where alpha and beta are scalars, A is a Hermitian matrix and B and C are m-by-n matrices.
| scalar_t | One of float, double, std::complex<float>, std::complex<double>. |
| [in] | side | Whether the Hermitian matrix A appears on the left or right:
|
| [in] | alpha | The scalar alpha. |
| [in] | A |
|
| [in] | B | The m-by-n matrix B. |
| [in] | beta | The scalar beta. |
| [in,out] | C | On entry, the m-by-n matrix C. On exit, overwritten by the result \(\alpha A B + \beta C\) or \(\alpha B A + \beta C\). |
| [in] | opts | Additional options, as map of name = value pairs. Possible options:
|