SRC/zsytrs_rook.f(3)
πΈ SRC/zsytrs_rook.f(3) πΈ
okay so this is a page from the Library Functions Manual and bestie, it is so specific β it's literally one subroutine and its whole entire vibe. let's get into it π
β¨ NAME β¨
SRC/zsytrs_rook.f β that's the file, that's the name, no cap π
β¨ SYNOPSIS β¨
π¦ Functions/Subroutines
subroutine zsytrs_rook (uplo, n, nrhs, a, lda, ipiv, b, ldb, info)β the one and only,ZSYTRS_ROOKπ
β¨ Function/Subroutine Documentation β¨
π the subroutine itself
subroutine zsytrs_rook (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_ROOK β say it with me, main character energy β
π§ Purpose:
ZSYTRS_ROOK solves a system of linear equations A*X = B with a complex symmetric matrix A using the factorization A = U*D*UT or A = L*D*LT computed by ZSYTRF_ROOK.
so like, you already did the hard part with ZSYTRF_ROOK, and now this lil icon finishes the job πβ¨
πΈ 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*UT; = 'L': Lower triangular, form is A = L*D*LT.
bestie you gotta tell it which triangle you're living in β upper girlie or lower girlie, pick one π
N
N is INTEGER The order of the matrix A. N >= 0.
the size of the whole situation. and yes, N >= 0, respect the boundary π«Ά
NRHS
NRHS is INTEGER The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.
how many right hand sides you're serving β literally the column count of B. also NRHS >= 0 fr fr π
A
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_ROOK.
this is the stuff ZSYTRF_ROOK handed you β the block diagonal matrix D plus the multipliers that got you U or L. don't mess with it, it's already iconic π
LDA
LDA is INTEGER The leading dimension of the array A. LDA >= max(1,N).
the leading dimension of A. LDA >= max(1,N), no exceptions π
IPIV
IPIV is INTEGER array, dimension (N) Details of the interchanges and the block structure of D as determined by ZSYTRF_ROOK.
all the interchange deets and the block structure of D, straight from ZSYTRF_ROOK. iykyk π¦
B
B is COMPLEX*16 array, dimension (LDB,NRHS) On entry, the right hand side matrix B. On exit, the solution matrix X.
the glow-up of the century honestly: goes in as the right hand side matrix B, comes out as the solution matrix X. we love a transformation β¨π
LDB
LDB is INTEGER The leading dimension of the array B. LDB >= max(1,N).
leading dimension of B. LDB >= max(1,N) β same energy as LDA, keep it consistent π
INFO
INFO is INTEGER = 0: successful exit < 0: if INFO = -i, the i-th argument had an illegal value
the vibe check at the end π 0 means slay, you're done. if it's < 0 and INFO = -i, then the i-th argument had an illegal value β so like, go check your arguments bestie π
π Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
shoutout to the whole squad, periodt π«Ά
π Contributors:
December 2016, Igor Kozachenko, Computer Science Division, University of California, Berkeley
September 2007, Sven Hammarling, Nicholas J. Higham, Craig Lucas, School of Mathematics, University of Manchester
legends, all of them πβ¨
π Definition at line 134 of file zsytrs_rook.f.
that's where it lives, that's the address, go visit π
π« Author (the meta one) π«
Generated automatically by Doxygen for LAPACK from the source code. yeah, a robot wrote the page about the subroutine. it's giving inception π
lowkey the whole thing is just: factor once withZSYTRF_ROOK, then let this little icon solveA*X = Bfor you. slay. π
LAPACK, Version 3.12.0 β okay bye bestie, mwah, go solve something symmetric ππΈπ¦
π¦ 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