Trdtrmm

Note

This is a modification of Trtrmm for LDL factorizations.

Symmetric/Hermitian triangular matrix-matrix multiply (with diagonal scaling): performs \(L := L^T D^{-1} L\), \(L := L^H D^{-1} L\), \(U := U D^{-1} U^T\), or \(U := U D^{-1} U^H\), depending upon the choice of the orientation and uplo parameters. Note that \(L\) and \(U\) are unit-diagonal and their diagonal is overwritten with \(D\).

C++ API

void Trdtrmm(UpperOrLower uplo, Matrix<F> &A, bool conjugate = false)
void Trdtrmm(UpperOrLower uplo, AbstractDistMatrix<F> &A, bool conjugate = false)
void Trdtrmm(UpperOrLower uplo, Matrix<F> &A, const Matrix<F> &dSub, bool conjugate = false)
void Trdtrmm(UpperOrLower uplo, AbstractDistMatrix<F> &A, const AbstractDistMatrix<F> &dSub, bool conjugate = false)

An extension to quasi-diagonal \(D\), where the main diagonal is stored over the main diagonal of A and the subdiagonal is given by dSub.

C API

ElError ElTrdtrmm_s(ElUpperOrLower uplo, ElMatrix_s A)
ElError ElTrdtrmm_d(ElUpperOrLower uplo, ElMatrix_d A)
ElError ElTrdtrmm_c(ElUpperOrLower uplo, ElMatrix_c A, bool conjugate)
ElError ElTrdtrmm_z(ElUpperOrLower uplo, ElMatrix_z A, bool conjugate)
ElError ElTrdtrmmDist_s(ElUpperOrLower uplo, ElDistMatrix_s A)
ElError ElTrdtrmmDist_d(ElUpperOrLower uplo, ElDistMatrix_d A)
ElError ElTrdtrmmDist_c(ElUpperOrLower uplo, ElDistMatrix_c A, bool conjugate)
ElError ElTrdtrmmDist_z(ElUpperOrLower uplo, ElDistMatrix_z A, bool conjugate)
ElError ElTrdtrmmQuasi_s(ElUpperOrLower uplo, ElMatrix_s A, ElConstMatrix_s dOff)
ElError ElTrdtrmmQuasi_d(ElUpperOrLower uplo, ElMatrix_d A, ElConstMatrix_d dOff)
ElError ElTrdtrmmQuasi_c(ElUpperOrLower uplo, ElMatrix_c A, ElConstMatrix_c dOff, bool conjugate)
ElError ElTrdtrmmQuasi_z(ElUpperOrLower uplo, ElMatrix_z A, ElConstMatrix_z dOff, bool conjugate)
ElError ElTrdtrmmQuasiDist_s(ElUpperOrLower uplo, ElDistMatrix_s A, ElConstDistMatrix_s dOff)
ElError ElTrdtrmmQuasiDist_d(ElUpperOrLower uplo, ElDistMatrix_d A, ElConstDistMatrix_d dOff)
ElError ElTrdtrmmQuasiDist_c(ElUpperOrLower uplo, ElDistMatrix_c A, ElConstDistMatrix_c dOff, bool conjugate)
ElError ElTrdtrmmQuasiDist_z(ElUpperOrLower uplo, ElDistMatrix_z A, ElConstDistMatrix_z dOff, bool conjugate)

Python API

Trdtrmm(uplo, A, conjugate=False)
TrdtrmmQuasi(uplo, A, dSub, conjugate=False)