SLATE 2024.05.31
Software for Linear Algebra Targeting Exascale
|
\(C = \alpha A B^H + \alpha B A^H + \beta C\) where \(C\) is Hermitian More...
Functions | |
template<typename scalar_t > | |
void | slate::her2k (scalar_t alpha, Matrix< scalar_t > &A, Matrix< scalar_t > &B, blas::real_type< scalar_t > beta, HermitianMatrix< scalar_t > &C, Options const &opts) |
Distributed parallel Hermitian rank 2k update. | |
\(C = \alpha A B^H + \alpha B A^H + \beta C\) where \(C\) is Hermitian
void slate::her2k | ( | scalar_t | alpha, |
Matrix< scalar_t > & | A, | ||
Matrix< scalar_t > & | B, | ||
blas::real_type< scalar_t > | beta, | ||
HermitianMatrix< scalar_t > & | C, | ||
Options const & | opts | ||
) |
Distributed parallel Hermitian rank 2k update.
Performs the Hermitian rank 2k operation
\[ C = \alpha A B^H + \alpha B A^H + \beta C, \]
where alpha and beta are scalars, C is an n-by-n Hermitian matrix, and A and B are an n-by-k matrices. The matrices can be conjugate-transposed beforehand, e.g.,
auto AT = slate::conj_transpose( A ); auto BT = slate::conj_transpose( B ); slate::her2k( alpha, AT, BT, beta, C );
Complexity (in real): \(\approx 2 k n^{2}\) flops.
scalar_t | One of float, double, std::complex<float>, std::complex<double>. |
[in] | alpha | The scalar alpha. |
[in] | A | The n-by-k matrix A. |
[in] | B | The n-by-k matrix B. |
[in] | beta | The real scalar beta. |
[in,out] | C | On entry, the n-by-n Hermitian matrix C. On exit, overwritten by the result \(C = \alpha A B^H + \alpha B A^H + \beta C\). |
[in] | opts | Additional options, as map of name = value pairs. Possible options:
|