ZSYT01_ROOK(3)
π§ͺ TESTING/LIN/zsyt01_rook.f π§ͺ
okay so bestie, welcome to the Library Functions Manual, section 3, and today's main character is zsyt01_rook.f β a whole file from the LAPACK TESTING/LIN folder. it's a testing routine, it's iconic, and it's about to check somebody's factorization work. let's go π
πΈ NAME πΈ
TESTING/LIN/zsyt01_rook.f
that's it. that's the name. no cap, that's literally the whole name section π
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutinezsyt01_rook(uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork, resid)β this is the one, this is the girl. also known as ZSYT01_ROOK π
π«Ά Function/Subroutine Documentation π«Ά
subroutine zsyt01_rook (character uplo, integer n, complex*16, dimension(
lda, * ) a, integer lda, complex*16, dimension( ldafac, * ) afac,
integer ldafac, integer, dimension( * ) ipiv, complex*16, dimension(
ldc, * ) c, integer ldc, double precision, dimension( * ) rwork, double
precision resid)
ZSYT01_ROOK β say it with me, she's the vibe check for your factorization π
π Purpose π
okay so the whole point: ZSYT01_ROOK reconstructs a complex symmetric indefinite matrix A from its block L*D*L' or U*D*U' factorization, and then it computes the residual
norm( C - A ) / ( N * norm(A) * EPS ),
where C is the reconstructed matrix, EPS is the machine epsilon, L' is the transpose of L, and U' is the transpose of U. basically she rebuilds the matrix and then stares at how close it got. obsessed π«Ά
π Parameters π
π UPLO
UPLO is CHARACTER*1. it specifies whether the upper or lower triangular part of the complex symmetric matrix A is stored:
= 'U': Upper triangular= 'L': Lower triangular
π N
N is INTEGER. the number of rows and columns of the matrix A. lowkey important: N >= 0. β¨
π A
A is COMPLEX*16 array, dimension (LDA,N). this is the original complex symmetric matrix A. the real one. the un-done one. πΈ
π LDA
LDA is INTEGER. the leading dimension of the array A. and it better be LDA >= max(1,N). π
π AFAC
AFAC is COMPLEX*16 array, dimension (LDAFAC,N). the factored form of the matrix A. AFAC contains the block diagonal matrix D and the multipliers used to obtain the factor L or U from the block L*D*L' or U*D*U' factorization as computed by ZSYTRF_ROOK. so like, this is the after photo π¦
π LDAFAC
LDAFAC is INTEGER. the leading dimension of the array AFAC. LDAFAC >= max(1,N). same energy, different array. π
π IPIV
IPIV is INTEGER array, dimension (N). the pivot indices from ZSYTRF_ROOK. the receipts of which rows went where π₯
π C
C is COMPLEX*16 array, dimension (LDC,N).
yes that's the entire description. she's mysterious. she's reconstructed. we respect her privacy π
π LDC
LDC is INTEGER. the leading dimension of the array C. LDC >= max(1,N). keep up bestie β
π RWORK
RWORK is DOUBLE PRECISION array, dimension (N).
that's all it says. workspace behavior, no notes. π
π RESID
RESID is DOUBLE PRECISION. and depending on your UPLO:
- if
UPLO = 'L':norm(L*D*L' - A) / ( N * norm(A) * EPS ) - if
UPLO = 'U':norm(U*D*U' - A) / ( N * norm(A) * EPS )
this is the number you came for. this is the grade. no rounding up, she does not curve π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
four institutions, one subroutine. ate. π
Definition at line 123 of file zsyt01_rook.f. mark it, screenshot it, memorize it β¨
π« Author π«
Generated automatically by Doxygen for LAPACK from the source code.
(yeah, the same section name twice, twice the author energy, we don't question the pipeline π€π«Ά)
and that's the page bestie!! footer tea for the road: this is LAPACK, Version 3.12.0, and the whole thing lives under TESTING/LIN/zsyt01_rook.f(3) in the manual. mwah, go reconstruct something πππ
π¦ 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