hetrs2(3)
π hetrs2(3) β the {he,sy}trs2 lore drop π
okay bestie so picture this: it's the hetrs2(3) family, living their best life in the Library Functions Manual, and they're all about one thing β solving a linear system using a factorization you already computed. no cap, that's the whole gig. let's get into it β¨
πΈ NAME πΈ
hetrs2 β {he,sy}trs2: solve using factor π
like, literally, that's it. the name is the mission.
π¦ SYNOPSIS π¦
β¨ Functions β¨
here's the whole squad, all six of them, each one an icon in their own right:
subroutine chetrs2 (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info)
CHETRS2
subroutine csytrs2 (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info)
CSYTRS2
subroutine dsytrs2 (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info)
DSYTRS2
subroutine ssytrs2 (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info)
SSYTRS2
subroutine zhetrs2 (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info)
ZHETRS2
subroutine zsytrs2 (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, info)
ZSYTRS2
look at them all lined up. so organized. main character energy fr fr π«Ά
π DESCRIPTION π
Detailed Description
okay so before the individual glow-ups, there's a Detailed Description section, and then it slides straight into Function Documentation β which is where each subroutine gets its own little spotlight moment π
π FUNCTION DOCUMENTATION π
π subroutine chetrs2 π
subroutine chetrs2 (character uplo, integer n, integer nrhs, complex,
dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv,
complex, dimension( ldb, * ) b, integer ldb, complex, dimension( * )
work, integer info)
CHETRS2 β the complex Hermitian one. she's giving π₯
πΊ Purpose πΊ
CHETRS2solves a system of linear equationsA*X = Bwith a complex Hermitian matrixAusing the factorizationA = U*D*U**HorA = L*D*L**Hcomputed byCHETRFand converted byCSYCONV.
yes bestie, the factorization part is the whole point β you already did the hard work with CHETRF and CSYCONV, now this one cashes it in for the solve. periodt π
β¨ Parameters β¨
UPLOβUPLOisCHARACTER*1. it specifies whether the details of the factorization are stored as an upper or lower triangular matrix. the options are iconic:= 'U': Upper triangular, form isA = U*D*U**H;= 'L': Lower triangular, form isA = L*D*L**H.
NβNisINTEGER. the order of the matrixA. and it's gotta beN >= 0.NRHSβNRHSisINTEGER. the number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.AβAisCOMPLEXarray, dimension(LDA,N). it's holding the block diagonal matrixDand the multipliers used to obtain the factorUorLas computed byCHETRF.LDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,N)β respect the boundary, bestie π§IPIVβIPIVisINTEGERarray, dimension(N). all the details of the interchanges and the block structure ofDas determined byCHETRF.BβBisCOMPLEXarray, dimension(LDB,NRHS). on entry, the right hand side matrixB. on exit, the solution matrixX. she's a transformation queen π«LDBβLDBisINTEGER. the leading dimension of the arrayB.LDB >= max(1,N).WORKβWORKisCOMPLEXarray, dimension(N). her workspace era.INFOβINFOisINTEGER. the vibe check:= 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 π
Definition at line 125 of file chetrs2.f.
π subroutine csytrs2 π
subroutine csytrs2 (character uplo, integer n, integer nrhs, complex,
dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv,
complex, dimension( ldb, * ) b, integer ldb, complex, dimension( * )
work, integer info)
CSYTRS2 β complex but symmetric, not Hermitian. subtle but crucial difference, iykyk π¦
πΊ Purpose πΊ
CSYTRS2solves a system of linear equationsA*X = Bwith a complex symmetric matrixAusing the factorizationA = U*D*U**TorA = L*D*L**Tcomputed byCSYTRFand converted byCSYCONV.
notice: U**T and L**T this time, not **H. no conjugate transpose here, and that's on purpose π
β¨ Parameters β¨
UPLOβUPLOisCHARACTER*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βNisINTEGER. the order of the matrixA.N >= 0.NRHSβNRHSisINTEGER. the number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.AβAisCOMPLEXarray, dimension(LDA,N). the block diagonal matrixDand the multipliers used to obtain the factorUorLas computed byCSYTRF. β οΈ and here's the plot twist, so listen up: note thatAis input / output. this might be counter-intuitive, and one may think thatAis input only.Ais input / output. this is because, at the start of the subroutine, we permuteAin a form and then we permuteAback to its original form at the end. she goes on a whole journey and comes back changed but alsoβ¦ the same?? character development, honestly πLDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,N).IPIVβIPIVisINTEGERarray, dimension(N). details of the interchanges and the block structure ofDas determined byCSYTRF.BβBisCOMPLEXarray, dimension(LDB,NRHS). on entry, the right hand side matrixB. on exit, the solution matrixX.LDBβLDBisINTEGER. the leading dimension of the arrayB.LDB >= max(1,N).WORKβWORKisCOMPLEXarray, dimension(N).INFOβINFOisINTEGER.= 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 π
Definition at line 130 of file csytrs2.f.
π₯ subroutine dsytrs2 π₯
subroutine dsytrs2 (character uplo, integer n, integer nrhs, double
precision, dimension( lda, * ) a, integer lda, integer, dimension( * )
ipiv, double precision, dimension( ldb, * ) b, integer ldb, double
precision, dimension( * ) work, integer info)
DSYTRS2 β the DOUBLE PRECISION real symmetric one. precision queen π
πΊ Purpose πΊ
DSYTRS2solves a system of linear equationsA*X = Bwith a real symmetric matrixAusing the factorizationA = U*D*U**TorA = L*D*L**Tcomputed byDSYTRFand converted byDSYCONV.
β¨ Parameters β¨
UPLOβUPLOisCHARACTER*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βNisINTEGER. the order of the matrixA.N >= 0.NRHSβNRHSisINTEGER. the number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.AβAisDOUBLE PRECISIONarray, dimension(LDA,N). the block diagonal matrixDand the multipliers used to obtain the factorUorLas computed byDSYTRF. β οΈ same plot twist as before, don't skip it: note thatAis input / output. this might be counter-intuitive, and one may think thatAis input only.Ais input / output. this is because, at the start of the subroutine, we permuteAin a form and then we permuteAback to its original form at the end. πLDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,N).IPIVβIPIVisINTEGERarray, dimension(N). details of the interchanges and the block structure ofDas determined byDSYTRF.BβBisDOUBLE PRECISIONarray, dimension(LDB,NRHS). on entry, the right hand side matrixB. on exit, the solution matrixX.LDBβLDBisINTEGER. the leading dimension of the arrayB.LDB >= max(1,N).WORKβWORKisDOUBLE PRECISIONarray, dimension(N).INFOβINFOisINTEGER.= 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 π
Definition at line 130 of file dsytrs2.f.
π subroutine ssytrs2 π
subroutine ssytrs2 (character uplo, integer n, integer nrhs, real,
dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, real,
dimension( ldb, * ) b, integer ldb, real, dimension( * ) work, integer
info)
SSYTRS2 β the single-precision real symmetric sibling. same energy, smaller floats πΈ
πΊ Purpose πΊ
SSYTRS2solves a system of linear equationsA*X = Bwith a real symmetric matrixAusing the factorizationA = U*D*U**TorA = L*D*L**Tcomputed bySSYTRFand converted bySSYCONV.
β¨ Parameters β¨
UPLOβUPLOisCHARACTER*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βNisINTEGER. the order of the matrixA.N >= 0.NRHSβNRHSisINTEGER. the number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.AβAisREALarray, dimension(LDA,N). the block diagonal matrixDand the multipliers used to obtain the factorUorLas computed bySSYTRF. β οΈ yeah you know the drill by now but it still matters: note thatAis input / output. this might be counter-intuitive, and one may think thatAis input only.Ais input / output. this is because, at the start of the subroutine, we permuteAin a form and then we permuteAback to its original form at the end. πLDAβLDAisINTEGER. the leading dimension of the arrayA.LDA >= max(1,N).IPIVβIPIVisINTEGERarray, dimension(N). details of the interchanges and the block structure ofDas determined bySSYTRF.Bβ β¦
and that's where part one of this page runs out on us π bestie the B deets are literally mid-sentence β hold that thought, there's more coming π«Άβ¨
BβBis a REAL array, dimension(LDB,NRHS). On entry it's your right hand side matrix, bestie β you hand it over asB, and on exit it comes back as the solution matrixX. glow-up fr fr πLDBβLDBis INTEGER. It's the leading dimension of the arrayB, and it has to obeyLDB >= max(1,N). no skipping this one πWORKβWORKis a REAL array, dimension(N). That's your lil scratch space, the workspace era β¨INFOβINFOis INTEGER, and it's the vibe check at the end:= 0: successful exit β we ate, no crumbs π< 0: ifINFO = -i, the i-th argument had an illegal value β so like, argument number i said something out of pocket π
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 130 of file ssytrs2.f.
π¦ subroutine zhetrs2 (character uplo, integer n, integer nrhs, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension( * ) work, integer info)
ZHETRS2
β Purpose:
!>
!> ZHETRS2 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 and converted by ZSYCONV.
!>
So yeah β it solves A*X = B for a complex Hermitian matrix A, using the factorization that ZHETRF already did and that ZSYCONV converted. team effort, iconic behavior π«Ά
πΈ Parameters
UPLOβUPLOisCHARACTER*1. It says whether the factorization details 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.
NβNis INTEGER. The order of the matrixA.N >= 0. zero is a valid order, she's inclusive πNRHSβNRHSis INTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.AβAis a COMPLEX*16 array, dimension(LDA,N). It holds the block diagonal matrixDand the multipliers used to obtain the factorUorL, as computed byZHETRF.LDAβLDAis INTEGER. The leading dimension of the arrayA.LDA >= max(1,N). rules are rules πIPIVβIPIVis an INTEGER array, dimension(N). The details of the interchanges and the block structure ofD, as determined byZHETRF.BβBis a COMPLEX*16 array, dimension(LDB,NRHS). On entry, the right hand side matrixB. On exit, the solution matrixX. she literally transforms πβ¨LDBβLDBis INTEGER. The leading dimension of the arrayB.LDB >= max(1,N).WORKβWORKis a COMPLEX*16 array, dimension(N). scratch space, do not perceive her πINFOβINFOis INTEGER:= 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 125 of file zhetrs2.f.
π§ subroutine zsytrs2 (character uplo, integer n, integer nrhs, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b, integer ldb, complex*16, dimension( * ) work, integer info)
ZSYTRS2
β Purpose:
!>
!> ZSYTRS2 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 and converted by ZSYCONV.
!>
Same energy, but this time it's a complex symmetric matrix A β solving A*X = B off the factorization A = U*D*U**T or A = L*D*L**T from ZSYTRF, converted by ZSYCONV. note the **T and not **H, that's the whole plot twist ππ₯
πΈ Parameters
UPLOβUPLOisCHARACTER*1. Upper or lower, pick your fighter:= 'U': Upper triangular, form isA = U*D*U**T;= 'L': Lower triangular, form isA = L*D*L**T.
NβNis INTEGER. The order of the matrixA.N >= 0.NRHSβNRHSis INTEGER. The number of right hand sides, i.e., the number of columns of the matrixB.NRHS >= 0.AβAis a COMPLEX*16 array, dimension(LDA,N). It's the block diagonal matrixDplus the multipliers used to obtain the factorUorL, as computed byZSYTRF.
π¨ okay this part is important, don't scroll past it bestie: note thatAis input / output. This might be counter-intuitive, and one may think thatAis input only.Ais input / output. This is because, at the start of the subroutine, we permuteAin a form and then we permuteAback to its original form at the end. so she leaves and comes back, like a true main character π
LDAβLDAis INTEGER. The leading dimension of the arrayA.LDA >= max(1,N).IPIVβIPIVis an INTEGER array, dimension(N). Details of the interchanges and the block structure ofD, as determined byZSYTRF.BβBis a COMPLEX*16 array, dimension(LDB,NRHS). On entry, the right hand side matrixB. On exit, the solution matrixX.LDBβLDBis INTEGER. The leading dimension of the arrayB.LDB >= max(1,N).WORKβWORKis a COMPLEX*16 array, dimension(N).INFOβINFOis INTEGER:= 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 130 of file zsytrs2.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page, bestie!! πβ¨ this whole thing is LAPACK Version 3.12.0 β yes, that's the version, and that's the page, so go forth and solve your systems π π¦π
π¦ 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