ZSYTRS(3)

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

✨ zsytrs.f(3) β€” bestie, it's the ZSYTRS page ✨

Okay so first thing: the manual name here is zsytrs.f(3), and yes we're in the LAPACK library-functions section (3), which is where all the "actually do the math" pages live. Buckle up, this one's a solver 🫢


🌸 NAME 🌸

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

That's the actual file, full path, no cap. That's literally the name section. The whole thing is just a path and honestly? Iconic. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine ZSYTRS (uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
    ZSYTRS

Like, that's the whole vibe. ZSYTRS the subroutine, and also ZSYTRS as its own description. It said "I'll describe myself" and honestly, slay.


πŸŽ€ Function/Subroutine Documentation πŸŽ€

⭐ the actual signature ⭐

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. Again. She's consistent, we love that for her. πŸ‘‘


πŸ’œ 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. !>

So real talk: you've got A*X = B, A is a complex symmetric matrix, and this baby solves it for X. But β€” and this is the key β€” she does not factorize from scratch. You have to bring her the factorization A = U*D*U**T or A = L*D*L**T that ZSYTRF already made. It's giving "I'll finish what ZSYTRF started." πŸ’…


🌈 Parameters 🌈

UPLO</p>

!> 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. !>

UPLO is a CHARACTER*1 and it's literally just "which half, bestie?" πŸ’–

  • 'U' β€” upper triangular, form is A = U*D*U**T
  • 'L' β€” lower triangular, form is A = L*D*L**T

Pick one, commit to it, main character energy only. ✨

N</p>

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

N is an INTEGER, the order of the matrix A. Constraint: N >= 0. Zero is allowed, negative is not. Boundaries, we stan. 🫢

NRHS</p>

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

NRHS is an INTEGER β€” the number of right hand sides, aka the number of columns of the matrix B. Constraint: NRHS >= 0. Same energy, same boundaries. 🌸

A</p>

!> A is COMPLEX*16 array, dimension (LDA,N) !> The block diagonal matrix D and the multipliers used to !> obtain the factor U or L as computed by ZSYTRF. !>

A is a COMPLEX*16 array, dimension (LDA,N). She's holding the block diagonal matrix D plus the multipliers used to get the factor U or L, exactly as computed by ZSYTRF. Do not freelance here β€” this array came from ZSYTRF and she expects it back the same way. πŸ”₯

LDA</p>

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

LDA is an INTEGER, the leading dimension of the array A. Constraint: LDA >= max(1,N). Respect the math, max(1,N), not just N. ✨

IPIV</p>

!> IPIV is INTEGER array, dimension (N) !> Details of the interchanges and the block structure of D !> as determined by ZSYTRF. !>

IPIV is an INTEGER array, dimension (N). It's carrying the details of the interchanges and the block structure of D, all as determined by ZSYTRF. Again: came from ZSYTRF, stays in sync with ZSYTRF. The way that consistency is the whole plot. πŸ¦‹

B</p>

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

B is a COMPLEX*16 array, dimension (LDB,NRHS). Character development moment: on entry it's the right hand side matrix B, and on exit it's the solution matrix X. She literally transforms in place, we love a glow-up. πŸ’–

LDB</p>

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

LDB is an INTEGER, the leading dimension of the array B. Constraint: LDB >= max(1,N). Yes queen, max(1,N) again. 🌟

INFO</p>

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

INFO is an INTEGER, the vibes report:

  • = 0 β€” successful exit, we ate, no notes πŸ’…
  • < 0 β€” if INFO = -i, the i-th argument had an illegal value πŸ™ˆ

So if you get a negative number, count through the arguments, because it's literally telling you which one you messed up. iykyk.


πŸ‘‘ Author πŸ‘‘

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

Four institutions, one legend. The group chat that raised her. 🫢


🧚 Definition at line 119 of file zsytrs.f.

Line 119, file zsytrs.f. Noted for the record β€” that's where the actual source lives. ⭐


🌸 Author (again, but the Doxygen one) 🌸

Generated automatically by Doxygen for LAPACK from the source code.

So nobody hand-wrote this page, a robot did it from the source. Respect the automation, fr fr. πŸ€–βœ¨


Heads up bestie: ZSYTRS needs A and IPIV to come from ZSYTRF β€” the factorization A = U*D*U**T or A = L*D*L**T. Don't hand her random arrays and expect a solution. The page doesn't promise that and neither should you. 😭

LAPACK, Version 3.12.0 β€” and the page path footer, /home/abui...RC/zsytrs.f(3), wrapped in the same little visit that brought you here. That's the whole page, bestie. Go solve something. πŸ“πŸ’œπŸŽ€

πŸ“¦ where this page comes from