Symm¶
Symmetric 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 symmetric and only the triangle specified by uplo
is accessed.
Note
For best performance, A, B, and C should all be in [MC,MR] distributions.
C++ API¶
-
void
Symm
(LeftOrRight side, UpperOrLower uplo, T alpha, const Matrix<T> &A, const Matrix<T> &B, T beta, Matrix<T> &C, bool conjugate = false)¶
-
void
Symm
(LeftOrRight side, UpperOrLower uplo, T alpha, const AbstractDistMatrix<T> &A, const AbstractDistMatrix<T> &B, T beta, AbstractDistMatrix<T> &C, bool conjugate = false)¶
C API¶
-
ElError
ElSymm_s
(ElLeftOrRight side, ElUpperOrLower uplo, float alpha, ElConstMatrix_s A, ElConstMatrix_s B, float beta, ElMatrix_s C)¶
-
ElError
ElSymm_d
(ElLeftOrRight side, ElUpperOrLower uplo, double alpha, ElConstMatrix_d A, ElConstMatrix_d B, double beta, ElMatrix_d C)¶
-
ElError
ElSymm_c
(ElLeftOrRight side, ElUpperOrLower uplo, complex_float alpha, ElConstMatrix_c A, ElConstMatrix_c B, complex_float beta, ElMatrix_c C)¶
-
ElError
ElSymm_z
(ElLeftOrRight side, ElUpperOrLower uplo, complex_double alpha, ElConstMatrix_z A, ElConstMatrix_z B, complex_double beta, ElMatrix_z C)¶
-
ElError
ElSymmDist_s
(ElLeftOrRight side, ElUpperOrLower uplo, float alpha, ElConstDistMatrix_s A, ElConstDistMatrix_s B, float beta, ElDistMatrix_s C)¶
-
ElError
ElSymmDist_d
(ElLeftOrRight side, ElUpperOrLower uplo, double alpha, ElConstDistMatrix_d A, ElConstDistMatrix_d B, double beta, ElDistMatrix_d C)¶
-
ElError
ElSymmDist_c
(ElLeftOrRight side, ElUpperOrLower uplo, complex_float alpha, ElConstDistMatrix_c A, ElConstDistMatrix_c B, complex_float beta, ElDistMatrix_c C)¶
-
ElError
ElSymmDist_z
(ElLeftOrRight side, ElUpperOrLower uplo, complex_double alpha, ElConstDistMatrix_z A, ElConstDistMatrix_z B, complex_double beta, ElDistMatrix_z C)¶