Two-sided Trmm

Performs a two-sided triangular multiplication with multiple right-hand sides which preserves the symmetry of the input matrix, either \(A := L^H A L\) or \(A := U A U^H\).

Note

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

C++ API

void TwoSidedTrmm(UpperOrLower uplo, UnitOrNonUnit diag, Matrix<T> &A, const Matrix<T> &B)
void TwoSidedTrmm(UpperOrLower uplo, UnitOrNonUnit diag, AbstractDistMatrix<T> &A, const AbstractDistMatrix<T> &B)

C API

ElError ElTwoSidedTrmm_s(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElMatrix_s A, ElConstMatrix_s B)
ElError ElTwoSidedTrmm_d(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElMatrix_d A, ElConstMatrix_d B)
ElError ElTwoSidedTrmm_c(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElMatrix_c A, ElConstMatrix_c B)
ElError ElTwoSidedTrmm_z(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElMatrix_z A, ElConstMatrix_z B)
ElError ElTwoSidedTrmmDist_s(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElDistMatrix_s A, ElConstDistMatrix_s B)
ElError ElTwoSidedTrmmDist_d(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElDistMatrix_d A, ElConstDistMatrix_d B)
ElError ElTwoSidedTrmmDist_c(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElDistMatrix_c A, ElConstDistMatrix_c B)
ElError ElTwoSidedTrmmDist_z(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElDistMatrix_z A, ElConstDistMatrix_z B)

Python API

TwoSidedTrmm(uplo, diag, A, B)