hetrs(3)
π hetrs β {he,sy}trs: triangular solve using factor π
hiii bestie π okay so this is the hetrs(3) page from the Library Functions Manual, and it's basically the back-half of the LU-ish factorization story for symmetric/Hermitian matrices. You know how ?hetrf / ?sytrf factor your matrix and hand you back a pile of blocks? Yeah β these routines are the "ok now actually solve it" part. Six flavors, all serving the same energy: chetrs, csytrs, dsytrs, ssytrs, zhetrs, zsytrs. Slay. β¨
π NAME π
hetrs β {he,sy}trs: triangular solve using factor
(that's the whole name section, she's short and to the point π )
π¦ SYNOPSIS π¦
β¨ Functions β¨
subroutine chetrs (uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
CHETRS
subroutine csytrs (uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
CSYTRS
subroutine dsytrs (uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
DSYTRS
subroutine ssytrs (uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
SSYTRS
subroutine zhetrs (uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
ZHETRS
subroutine zsytrs (uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
ZSYTRS
Same argument list across the board β uplo, n, nrhs, a, lda, ipiv, b, ldb, info β which honestly? iconic. Learn it once, use it six times π«Ά
πΈ Detailed Description πΈ
So the original page has this heading and thenβ¦ literally nothing under it before the next section. No cap. It's giving "heading as a personality trait" π but we move, the real content lives in Function Documentation right below π
π Function Documentation π
π chetrs π
subroutine chetrs (character uplo, integer n, integer nrhs, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb, integer info)
CHETRS
π Purpose π
Okay so β CHETRS solves a system of linear equations A*X = B with a complex Hermitian matrix A using the factorization A = U*D*U**H or A = L*D*L**H computed by CHETRF. π
Translation: CHETRF already did the heavy lifting, you're just here to cash in the solve. Periodt.
π Parameters π
UPLOβ isCHARACTER*1. Tells us whether the deets of the factorization were stored as an upper or lower triangular matrix. Your choices:= 'U':Upper triangular, form isA = U*D*U**H;= 'L':Lower triangular, form isA = L*D*L**H.
Nβ isINTEGER. The order of the matrixA. Has to satisfyN >= 0.NRHSβ isINTEGER. The number of right hand sides, i.e., the number of columns of the matrixB. Has to satisfyNRHS >= 0.Aβ isCOMPLEXarray, dimension(LDA,N). The block diagonal matrixDand the multipliers used to obtain the factorUorLas computed byCHETRF. (so: the leftovers from your factorization, lovingly preserved π)LDAβ isINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).IPIVβ isINTEGERarray, dimension(N). Details of the interchanges and the block structure ofDas determined byCHETRF.Bβ isCOMPLEXarray, dimension(LDB,NRHS). On entry, the right hand side matrixB. On exit, the solution matrixX. β¨ (yes she gets overwritten, that's the whole bit)LDBβ isINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).INFOβ isINTEGER. The vibe check:= 0:successful exit π< 0:ifINFO = -i, thei-th argument had an illegal value π
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 119 of file chetrs.f.
π csytrs π
subroutine csytrs (character uplo, integer n, integer nrhs, complex, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb, integer info)
CSYTRS
π Purpose π
CSYTRS solves a system of linear equations A*X = B with a complex symmetric matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by CSYTRF. π¦
Spot the difference from her Hermitian sister: symmetric, and it's U**T / L**T β plain transpose, no conjugate. iykyk π
π Parameters π
UPLOβ isCHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix:= 'U':Upper triangular, form isA = U*D*U**T;= 'L':Lower triangular, form isA = L*D*L**T.
Nβ isINTEGER. The order of the matrixA.N >= 0.NRHSβ isINTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.Aβ isCOMPLEXarray, dimension(LDA,N). The block diagonal matrixDand the multipliers used to obtain the factorUorLas computed byCSYTRF.LDAβ isINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).IPIVβ isINTEGERarray, dimension(N). Details of the interchanges and the block structure ofDas determined byCSYTRF.Bβ isCOMPLEXarray, dimension(LDB,NRHS). On entry, the right hand side matrixB. On exit, the solution matrixX. π«ΆLDBβ isINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).INFOβ isINTEGER:= 0:successful exit π< 0:ifINFO = -i, thei-th argument had an illegal value π
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 119 of file csytrs.f.
π dsytrs π
subroutine dsytrs (character uplo, integer n, integer nrhs, double precision, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, double precision, dimension( ldb, * ) b, integer ldb, integer info)
DSYTRS
π Purpose π
DSYTRS solves a system of linear equations A*X = B with a real symmetric matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by DSYTRF. π₯
Real. Symmetric. Double precision. The workhorse of the group, honestly β main character energy but in a quiet way π
π Parameters π
UPLOβ isCHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix:= 'U':Upper triangular, form isA = U*D*U**T;= 'L':Lower triangular, form isA = L*D*L**T.
Nβ isINTEGER. The order of the matrixA.N >= 0.NRHSβ isINTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.Aβ isDOUBLE PRECISIONarray, dimension(LDA,N). The block diagonal matrixDand the multipliers used to obtain the factorUorLas computed byDSYTRF.LDAβ isINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).IPIVβ isINTEGERarray, dimension(N). Details of the interchanges and the block structure ofDas determined byDSYTRF.Bβ isDOUBLE PRECISIONarray, dimension(LDB,NRHS). On entry, the right hand side matrixB. On exit, the solution matrixX. πLDBβ isINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).INFOβ isINTEGER:= 0:successful exit β¨< 0:ifINFO = -i, thei-th argument had an illegal value π
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 119 of file dsytrs.f.
π ssytrs π
subroutine ssytrs (character uplo, integer n, integer nrhs, real, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, real, dimension( ldb, * ) b, integer ldb, integer info)
SSYTRS
π Purpose π
SSYTRS solves a system of linear equations A*X = B with a real symmetric matrix A using the factorization A = U*D*U**T or A = L*D*L**T computed by SSYTRF. β
Same as DSYTRS but single precision β real ones know the difference is just how much precision you're willing to pay for πΈ
π Parameters π
UPLOβ isCHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix:= 'U':Upper triangular, form isA = U*D*U**T;= 'L':Lower triangular, form isA = L*D*L**T.
Nβ isINTEGER. The order of the matrixA.N >= 0.NRHSβ isINTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.Aβ isREALarray, dimension(LDA,N). The block diagonal matrixDand the multipliers used to obtain the factorUorLas computed bySSYTRF.LDAβ isINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).IPIVβ isINTEGERarray, dimension(N). Details of the interchanges and the block structure ofDas determined bySSYTRF.Bβ isREALarray, dimension(LDB,NRHS). On entry, the right hand side matrixB. On exit, the solution matrixX. π§LDBβ isINTEGER. The leading dimension of the arrayB.LDB >= max(1,N).INFOβ isINTEGER:= 0:successful exit π< 0:ifINFO = -i, thei-th argument had an illegal value π
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 119 of file ssytrs.f.
π zhetrs π
subroutine zhetrs (character uplo, integer n, integer nrhs, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b, integer ldb, integer info)
ZHETRS
π Purpose π
ZHETRS solves a system of linear equations A*X = B with a complex Hermitian matrix A using the factorization A = U*D*U**H or A = L*D*L**H computed by ZHETRF. π
Double complex, Hermitian, conjugate-transpose β the full-glam version of CHETRS and she knows it π
π Parameters π
UPLOβ isCHARACTER*1. Specifies whether the details of the factorization are stored as an upper or lower triangular matrix:= 'U':Upper triangular, form isA = U*D*U**H;= 'L':Lower triangular, form isA = L*D*L**H.
and then the next parameter is NRHS β which is exactly where part 1 runs out π bestie the page literally cuts off mid-parameter-list. The rest of ZHETRS (NRHS, A, LDA, IPIV, B, LDB, INFO, her author block, her definition line) plus zsytrs are all waiting in part 2 π
NRHSβINTEGER. the number of right hand sides, bestie, aka the number of columns of the matrixB. Gotta beNRHS >= 0. πAβCOMPLEX*16array, dimension(LDA,N). this is the block diagonal matrixDplus the multipliers that were used to get the factorUorL, exactly as computed byZHETRF. no cap, it's already been through the wringer. β¨LDAβINTEGER. the leading dimension of the arrayA, and the vibe check isLDA >= max(1,N). πIPIVβINTEGERarray, dimension(N). all the deets on the interchanges and the block structure ofD, as determined byZHETRF. πBβCOMPLEX*16array, dimension(LDB,NRHS). on entry it's the right hand side matrixB; on exit it's the solution matrixX. literally the glow-up. π¦LDBβINTEGER. the leading dimension of the arrayB, andLDB >= max(1,N)or it's a no. πΈINFOβINTEGER. the receipts:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 119 of file zhetrs.f.
π§ zsytrs
subroutine zsytrs (character uplo, integer n, integer nrhs, complex*16,
dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv,
complex*16, dimension( ldb, * ) b, integer ldb, integer info)
ZSYTRS
π Purpose
!>
!> ZSYTRS solves a system of linear equations A*X = B with a complex
!> symmetric matrix A using the factorization A = U*D*U**T or
!> A = L*D*L**T computed by ZSYTRF.
!>
okay so short version: it solves A*X = B for a complex symmetric matrix A, using the factorization that ZSYTRF already handed you. team work makes the dream work. π«Ά
β¨ Parameters
UPLOβCHARACTER*1. tells us whether the factorization deets are stored as an upper or lower triangular matrix:= 'U': upper triangular, form isA = U*D*U**T; β= 'L': lower triangular, form isA = L*D*L**T. π
NβINTEGER. the order of the matrixA.N >= 0, periodt. πNRHSβINTEGER. the number of right hand sides, i.e. the number of columns of the matrixB.NRHS >= 0. πAβCOMPLEX*16array, dimension(LDA,N). the block diagonal matrixDand the multipliers used to obtain the factorUorL, as computed byZSYTRF. icons only. β¨LDAβINTEGER. the leading dimension of the arrayA.LDA >= max(1,N). πIPIVβINTEGERarray, dimension(N). details of the interchanges and the block structure ofD, as determined byZSYTRF. π¦BβCOMPLEX*16array, dimension(LDB,NRHS). on entry, the right hand side matrixB; on exit, the solution matrixX. main character transformation fr fr. πΈLDBβINTEGER. the leading dimension of the arrayB.LDB >= max(1,N). πINFOβINTEGER. the final verdict:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 119 of file zsytrs.f.
π Author
this whole page was generated automatically by Doxygen for LAPACK from the source code. iykyk, the robots did the typing, i just did the vibes. π«
and that's the page!! π this lil masterpiece is LAPACK, Version 3.12.0, and it's the hetrs(3) page you've been reading β go forth and solve those systems, bestie. slay. π
π
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms