Trr2k¶
Triangular rank-2k update: performs \(E := \alpha A^\# B^\sharp + \beta C^\Diamond D^\triangle + \gamma E\), where only the triangle of E specified by uplo is modified, and the orientation of each input matrix, e.g., \(A^\# \in \{A,A^T,A^H\}\), is determined by orientationOfX for each \(X \in \left\{A,B,C,D\right\}\).
Note
There is no corresponding BLAS routine, but it is a natural generalization of “symmetric” and “Hermitian” updates.
Note
For the best performance, A, B, C, D, and E should all be in [MC,MR] distributions.
C++ API¶
-
void
Trr2k
(UpperOrLower uplo, Orientation orientationOfA, Orientation orientationOfB, Orientation orientationOfC, Orientation orientationOfD, T alpha, const Matrix<T> &A, const Matrix<T> &B, T beta, const Matrix<T> &C, const Matrix<T> &D, T gamma, Matrix<T> &E)¶
-
void
Trr2k
(UpperOrLower uplo, Orientation orientationOfA, Orientation orientationOfB, Orientation orientationOfC, Orientation orientationOfD, T alpha, const AbstractDistMatrix<T> &A, const AbstractDistMatrix<T> &B, T beta, const AbstractDistMatrix<T> &C, const AbstractDistMatrix<T> &D, T gamma, AbstractDistMatrix<T> &E)¶
C API¶
-
ElError
ElTrr2k_s
(ElUpperOrLower uplo, ElOrientation orientA, ElOrientation orientB, ElOrientation orientC, ElOrientation orientD, float alpha, ElConstMatrix_s A, ElConstMatrix_s B, float beta, ElConstMatrix_s C, ElConstMatrix_s D, float gamma, ElMatrix_s E)¶
-
ElError
ElTrr2k_d
(ElUpperOrLower uplo, ElOrientation orientA, ElOrientation orientB, ElOrientation orientC, ElOrientation orientD, double alpha, ElConstMatrix_d A, ElConstMatrix_d B, double beta, ElConstMatrix_d C, ElConstMatrix_d D, double gamma, ElMatrix_d E)¶
-
ElError
ElTrr2k_c
(ElUpperOrLower uplo, ElOrientation orientA, ElOrientation orientB, ElOrientation orientC, ElOrientation orientD, complex_float alpha, ElConstMatrix_c A, ElConstMatrix_c B, complex_float beta, ElConstMatrix_c C, ElConstMatrix_c D, complex_float gamma, ElMatrix_c E)¶
-
ElError
ElTrr2k_z
(ElUpperOrLower uplo, ElOrientation orientA, ElOrientation orientB, ElOrientation orientC, ElOrientation orientD, complex_double alpha, ElConstMatrix_z A, ElConstMatrix_z B, complex_double beta, ElConstMatrix_z C, ElConstMatrix_z D, complex_double gamma, ElMatrix_z E)¶
-
ElError
ElTrr2kDist_s
(ElUpperOrLower uplo, ElOrientation orientA, ElOrientation orientB, ElOrientation orientC, ElOrientation orientD, float alpha, ElConstDistMatrix_s A, ElConstDistMatrix_s B, float beta, ElConstDistMatrix_s C, ElConstDistMatrix_s D, float gamma, ElDistMatrix_s E)¶
-
ElError
ElTrr2kDist_d
(ElUpperOrLower uplo, ElOrientation orientA, ElOrientation orientB, ElOrientation orientC, ElOrientation orientD, double alpha, ElConstDistMatrix_d A, ElConstDistMatrix_d B, double beta, ElConstDistMatrix_d C, ElConstDistMatrix_d D, double gamma, ElDistMatrix_d E)¶
-
ElError
ElTrr2kDist_c
(ElUpperOrLower uplo, ElOrientation orientA, ElOrientation orientB, ElOrientation orientC, ElOrientation orientD, complex_float alpha, ElConstDistMatrix_c A, ElConstDistMatrix_c B, complex_float beta, ElConstDistMatrix_c C, ElConstDistMatrix_c D, complex_float gamma, ElDistMatrix_c E)¶
-
ElError
ElTrr2kDist_z
(ElUpperOrLower uplo, ElOrientation orientA, ElOrientation orientB, ElOrientation orientC, ElOrientation orientD, complex_double alpha, ElConstDistMatrix_z A, ElConstDistMatrix_z B, complex_double beta, ElConstDistMatrix_z C, ElConstDistMatrix_z D, complex_double gamma, ElDistMatrix_z E)¶