/home/abui...sytrs_aa.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zsytrs_aa.f

okay so bestie, this is the manual page for that one file πŸ’… it lives at .../zsytrs_aa.f(3) and it's filed under the Library Functions Manual, lowercase, no cap.


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine ZSYTRS_AA (uplo, n, nrhs, a, lda, ipiv, b, ldb, work, lwork, info) β€” that's the whole squad right there, we'll meet every single one of them below 🫢

πŸ’– Function/Subroutine Documentation πŸ’–

subroutine ZSYTRS_AA (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 lwork, integer info)

ZSYTRS_AA

πŸŽ€ Purpose πŸŽ€

ok so the whole point, literally:

!>
!> ZSYTRS_AA solves a system of linear equations A*X = B with a complex
!> symmetric matrix A using the factorization A = U**T*T*U or
!> A = L*T*L**T computed by ZSYTRF_AA.
!>

so yeah, it solves A*X = B, and the A it works with is a complex symmetric matrix, and you gotta feed it the factorization that ZSYTRF_AA already made for you β€” either A = U**T*T*U or A = L*T*L**T. it's giving "I already did the hard part, now finish it" energy πŸ”₯

πŸ¦‹ 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**T*T*U;
!>          = 'L':  Lower triangular, form is A = L*T*L**T.
!>

it's a CHARACTER*1 bestie, one (1) single character, and it tells the routine whether your factorization details are chilling in the upper or lower triangular matrix:

  • 'U' β†’ upper triangular, form is A = U**T*T*U
  • 'L' β†’ lower triangular, form is A = L*T*L**T

pick one, don't be weird about it πŸ’€

N

!>          N is INTEGER
!>          The order of the matrix A.  N >= 0.
!>

INTEGER, the order of matrix A, and N >= 0 β€” no negativity allowed, this is a positive-vibes-only zone ✨

NRHS

!>          NRHS is INTEGER
!>          The number of right hand sides, i.e., the number of columns
!>          of the matrix B.  NRHS >= 0.
!>

INTEGER, how many right hand sides you got goin' on β€” which is literally just the number of columns in matrix B. and yeah, NRHS >= 0. periodt.

A

!>          A is COMPLEX*16 array, dimension (LDA,N)
!>          Details of factors computed by ZSYTRF_AA.
!>

COMPLEX*16 array, dimension (LDA,N) β€” and it's holding the details of the factors that ZSYTRF_AA computed. so like, this array is the receipts from the earlier call 🧾

LDA

!>          LDA is INTEGER
!>          The leading dimension of the array A.  LDA >= max(1,N).
!>

INTEGER, leading dimension of array A, and LDA >= max(1,N) β€” ok that max(1,N) is doing the lords work for the N = 0 girlies πŸ‘‘

IPIV

!>          IPIV is INTEGER array, dimension (N)
!>          Details of the interchanges as computed by ZSYTRF_AA.
!>

INTEGER array, dimension (N) β€” the details of the interchanges, as computed by ZSYTRF_AA. again: receipts, already collected, just hand them over πŸ’…

B

!>          B is COMPLEX*16 array, dimension (LDB,NRHS)
!>          On entry, the right hand side matrix B.
!>          On exit, the solution matrix X.
!>

COMPLEX*16 array, dimension (LDB,NRHS) β€” and here's the glow-up moment: on entry it's the right hand side matrix B, and on exit it's the solution matrix X. same array, whole new identity. main character energy fr fr πŸ‘‘

LDB

!>          LDB is INTEGER
!>          The leading dimension of the array B.  LDB >= max(1,N).
!>

INTEGER, leading dimension of array B, and LDB >= max(1,N). same rule as LDA, but for the B girlies πŸŽ€

WORK

!>          WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
!>

COMPLEX*16 array, dimension (MAX(1,LWORK)) β€” the workspace. it's giving behind-the-scenes crew, unappreciated but essential 😭

LWORK

!>          LWORK is INTEGER
!>          The dimension of the array WORK. LWORK >= max(1,3*N-2).
!>

INTEGER, the dimension of the array WORK, and LWORK >= max(1,3*N-2). write that down: 3*N-2. not 3*N-1, not 3*N, it's 3*N-2 and it's lowkey iconic for it 🌸

INFO

!>          INFO is INTEGER
!>          = 0:  successful exit
!>          < 0:  if INFO = -i, the i-th argument had an illegal value
!>

INTEGER, 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. not me pointing at exactly which argument fumbled πŸ’€

🌈 Author 🌈

the brains behind it:

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 129 of file zsytrs_aa.f. ✨ (line 129 specifically, bestie, don't go looking at line 128)


🫢 Author 🫢

Generated automatically by Doxygen for LAPACK from the source code. so nobody hand-wrote this, it's a robot doing its little robot thing πŸ€–πŸ’œ


ngl this whole page is your cheat sheet: UPLO picks upper/lower, A + IPIV are the receipts from ZSYTRF_AA, B goes in as the right hand side and comes out as X, and INFO = 0 means you're slaying.

β€” LAPACK, Version 3.12.0, /home/abui...sytrs_aa.f(3), mwah πŸ’‹

πŸ“¦ where this page comes from