Hemm

Hermitian matrix-matrix multiplication: updates \(C := \alpha A B + \beta C\), or \(C := \alpha B A + \beta C\), depending upon whether side is set to LEFT or RIGHT, respectively. In both of these types of updates, \(A\) is implicitly Hermitian and only the triangle specified by uplo is accessed.

Note

For the best performance, A, B, and C should all be in [MC,MR] distributions.

C++ API

void Hemm(LeftOrRight side, UpperOrLower uplo, T alpha, const Matrix<T> &A, const Matrix<T> &B, T beta, Matrix<T> &C)
void Hemm(LeftOrRight side, UpperOrLower uplo, T alpha, const AbstractDistMatrix<T> &A, const AbstractDistMatrix<T> &B, T beta, AbstractDistMatrix<T> &C)

C API

ElError ElHemm_c(ElLeftOrRight side, ElUpperOrLower uplo, complex_float alpha, ElConstMatrix_c A, ElConstMatrix_c B, complex_float beta, ElMatrix_c C)
ElError ElHemm_z(ElLeftOrRight side, ElUpperOrLower uplo, complex_double alpha, ElConstMatrix_z A, ElConstMatrix_z B, complex_double beta, ElMatrix_z C)
ElError ElHemmDist_c(ElLeftOrRight side, ElUpperOrLower uplo, complex_float alpha, ElConstDistMatrix_c A, ElConstDistMatrix_c B, complex_float beta, ElDistMatrix_c C)
ElError ElHemmDist_z(ElLeftOrRight side, ElUpperOrLower uplo, complex_double alpha, ElConstDistMatrix_z A, ElConstDistMatrix_z B, complex_double beta, ElDistMatrix_z C)

Python API

Hemm(side, uplo, alpha, A, B, beta, C)