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 🌺

CHETRS2 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 and converted by CSYCONV.

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 β€” UPLO is CHARACTER*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 is A = U*D*U**H;
    • = 'L': Lower triangular, form is A = L*D*L**H.
  • N β€” N is INTEGER. the order of the matrix A. and it's gotta be N >= 0.
  • NRHS β€” NRHS is INTEGER. the number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” A is COMPLEX array, dimension (LDA,N). it's holding the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CHETRF.
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N) β€” respect the boundary, bestie 🚧
  • IPIV β€” IPIV is INTEGER array, dimension (N). all the details of the interchanges and the block structure of D as determined by CHETRF.
  • B β€” B is COMPLEX array, dimension (LDB,NRHS). on entry, the right hand side matrix B. on exit, the solution matrix X. she's a transformation queen πŸ’«
  • LDB β€” LDB is INTEGER. the leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” WORK is COMPLEX array, dimension (N). her workspace era.
  • INFO β€” INFO is INTEGER. the vibe check:
    • = 0: successful exit ✨
    • < 0: if INFO = -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 🌺

CSYTRS2 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 and converted by CSYCONV.

notice: U**T and L**T this time, not **H. no conjugate transpose here, and that's on purpose πŸ‘

✨ Parameters ✨

  • UPLO β€” UPLO is CHARACTER*1. specifies whether the details of the factorization are stored as an upper or lower triangular matrix:
    • = 'U': Upper triangular, form is A = U*D*U**T;
    • = 'L': Lower triangular, form is A = L*D*L**T.
  • N β€” N is INTEGER. the order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER. the number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” A is COMPLEX array, dimension (LDA,N). the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by CSYTRF. ⚠️ and here's the plot twist, so listen up: note that A is input / output. this might be counter-intuitive, and one may think that A is input only. A is input / output. this is because, at the start of the subroutine, we permute A in a form and then we permute A back 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 β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N). details of the interchanges and the block structure of D as determined by CSYTRF.
  • B β€” B is COMPLEX array, dimension (LDB,NRHS). on entry, the right hand side matrix B. on exit, the solution matrix X.
  • LDB β€” LDB is INTEGER. the leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” WORK is COMPLEX array, dimension (N).
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit ✨
    • < 0: if INFO = -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 🌺

DSYTRS2 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 and converted by DSYCONV.

✨ Parameters ✨

  • UPLO β€” UPLO is CHARACTER*1. specifies whether the details of the factorization are stored as an upper or lower triangular matrix:
    • = 'U': Upper triangular, form is A = U*D*U**T;
    • = 'L': Lower triangular, form is A = L*D*L**T.
  • N β€” N is INTEGER. the order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER. the number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by DSYTRF. ⚠️ same plot twist as before, don't skip it: note that A is input / output. this might be counter-intuitive, and one may think that A is input only. A is input / output. this is because, at the start of the subroutine, we permute A in a form and then we permute A back to its original form at the end. πŸŒ€
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N). details of the interchanges and the block structure of D as determined by DSYTRF.
  • B β€” B is DOUBLE PRECISION array, dimension (LDB,NRHS). on entry, the right hand side matrix B. on exit, the solution matrix X.
  • LDB β€” LDB is INTEGER. the leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (N).
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit ✨
    • < 0: if INFO = -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 🌺

SSYTRS2 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 and converted by SSYCONV.

✨ Parameters ✨

  • UPLO β€” UPLO is CHARACTER*1. specifies whether the details of the factorization are stored as an upper or lower triangular matrix:
    • = 'U': Upper triangular, form is A = U*D*U**T;
    • = 'L': Lower triangular, form is A = L*D*L**T.
  • N β€” N is INTEGER. the order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER. the number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” A is REAL array, dimension (LDA,N). the block diagonal matrix D and the multipliers used to obtain the factor U or L as computed by SSYTRF. ⚠️ yeah you know the drill by now but it still matters: note that A is input / output. this might be counter-intuitive, and one may think that A is input only. A is input / output. this is because, at the start of the subroutine, we permute A in a form and then we permute A back to its original form at the end. πŸ”
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is INTEGER array, dimension (N). details of the interchanges and the block structure of D as determined by SSYTRF.
  • 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 β€” B is a REAL array, dimension (LDB,NRHS). On entry it's your right hand side matrix, bestie β€” you hand it over as B, and on exit it comes back as the solution matrix X. glow-up fr fr πŸ’…
  • LDB β€” LDB is INTEGER. It's the leading dimension of the array B, and it has to obey LDB >= max(1,N). no skipping this one πŸ™ˆ
  • WORK β€” WORK is a REAL array, dimension (N). That's your lil scratch space, the workspace era ✨
  • INFO β€” INFO is INTEGER, and it's the vibe check at the end:
    • = 0: successful exit β€” we ate, no crumbs πŸ‘‘
    • < 0: if INFO = -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 β€” UPLO is CHARACTER*1. It says whether the factorization details are stored as an upper or lower triangular matrix:
    • = 'U': Upper triangular, form is A = U*D*U**H;
    • = 'L': Lower triangular, form is A = L*D*L**H.
  • N β€” N is INTEGER. The order of the matrix A. N >= 0. zero is a valid order, she's inclusive πŸ’œ
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” A is a COMPLEX*16 array, dimension (LDA,N). It holds the block diagonal matrix D and the multipliers used to obtain the factor U or L, as computed by ZHETRF.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,N). rules are rules πŸŽ€
  • IPIV β€” IPIV is an INTEGER array, dimension (N). The details of the interchanges and the block structure of D, as determined by ZHETRF.
  • B β€” B is a COMPLEX*16 array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, the solution matrix X. she literally transforms 😭✨
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” WORK is a COMPLEX*16 array, dimension (N). scratch space, do not perceive her 🌈
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit
    • < 0: if INFO = -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 β€” UPLO is CHARACTER*1. Upper or lower, pick your fighter:
    • = 'U': Upper triangular, form is A = U*D*U**T;
    • = 'L': Lower triangular, form is A = L*D*L**T.
  • N β€” N is INTEGER. The order of the matrix A. N >= 0.
  • NRHS β€” NRHS is INTEGER. The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
  • A β€” A is a COMPLEX*16 array, dimension (LDA,N). It's the block diagonal matrix D plus the multipliers used to obtain the factor U or L, as computed by ZSYTRF.
🚨 okay this part is important, don't scroll past it bestie: note that A is input / output. This might be counter-intuitive, and one may think that A is input only. A is input / output. This is because, at the start of the subroutine, we permute A in a form and then we permute A back to its original form at the end. so she leaves and comes back, like a true main character 🌟
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • IPIV β€” IPIV is an INTEGER array, dimension (N). Details of the interchanges and the block structure of D, as determined by ZSYTRF.
  • B β€” B is a COMPLEX*16 array, dimension (LDB,NRHS). On entry, the right hand side matrix B. On exit, the solution matrix X.
  • LDB β€” LDB is INTEGER. The leading dimension of the array B. LDB >= max(1,N).
  • WORK β€” WORK is a COMPLEX*16 array, dimension (N).
  • INFO β€” INFO is INTEGER:
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -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