Trsv

Triangular solve with a vector: computes \(x := \mbox{op}(A)^{-1} x\), where \(\mbox{op}(A)\) is either \(A\), \(A^T\), or \(A^H\), and \(A\) is treated an either a lower or upper triangular matrix, depending upon uplo. \(A\) can also be treated as implicitly having a unit-diagonal if diag is set to UNIT.

Note

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

C++ API

void Trsv(UpperOrLower uplo, Orientation orientation, UnitOrNonUnit diag, const Matrix<F> &A, Matrix<F> &x)
void Trsv(UpperOrLower uplo, Orientation orientation, UnitOrNonUnit diag, const AbstractDistMatrix<F> &A, AbstractDistMatrix<F> &x)

C API

ElError ElTrsv_s(ElUpperOrLower uplo, ElOrientation orientation, ElUnitOrNonUnit diag, ElConstMatrix_s A, ElMatrix_s x)
ElError ElTrsv_d(ElUpperOrLower uplo, ElOrientation orientation, ElUnitOrNonUnit diag, ElConstMatrix_d A, ElMatrix_d x)
ElError ElTrsv_c(ElUpperOrLower uplo, ElOrientation orientation, ElUnitOrNonUnit diag, ElConstMatrix_c A, ElMatrix_c x)
ElError ElTrsv_z(ElUpperOrLower uplo, ElOrientation orientation, ElUnitOrNonUnit diag, ElConstMatrix_z A, ElMatrix_z x)
ElError ElTrsvDist_s(ElUpperOrLower uplo, ElOrientation orientation, ElUnitOrNonUnit diag, ElConstDistMatrix_s A, ElDistMatrix_s x)
ElError ElTrsvDist_d(ElUpperOrLower uplo, ElOrientation orientation, ElUnitOrNonUnit diag, ElConstDistMatrix_d A, ElDistMatrix_d x)
ElError ElTrsvDist_c(ElUpperOrLower uplo, ElOrientation orientation, ElUnitOrNonUnit diag, ElConstDistMatrix_c A, ElDistMatrix_c x)
ElError ElTrsvDist_z(ElUpperOrLower uplo, ElOrientation orientation, ElUnitOrNonUnit diag, ElConstDistMatrix_z A, ElDistMatrix_z x)