Two-sided Trsm

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

Note

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

C++ API

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

C API

ElError ElTwoSidedTrsm_s(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElMatrix_s A, ElConstMatrix_s B)
ElError ElTwoSidedTrsm_d(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElMatrix_d A, ElConstMatrix_d B)
ElError ElTwoSidedTrsm_c(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElMatrix_c A, ElConstMatrix_c B)
ElError ElTwoSidedTrsm_z(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElMatrix_z A, ElConstMatrix_z B)
ElError ElTwoSidedTrsmDist_s(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElDistMatrix_s A, ElConstDistMatrix_s B)
ElError ElTwoSidedTrsmDist_d(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElDistMatrix_d A, ElConstDistMatrix_d B)
ElError ElTwoSidedTrsmDist_c(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElDistMatrix_c A, ElConstDistMatrix_c B)
ElError ElTwoSidedTrsmDist_z(ElUpperOrLower uplo, ElUnitOrNonUnit diag, ElDistMatrix_z A, ElConstDistMatrix_z B)

Python API

TwoSidedTrsm(uplo, diag, A, B)