TESTING/LIN/zsyt01.f(3)

πŸ“¦
version 3.12.1 Β· 2 versions
, in arch rolling

πŸ’… TESTING/LIN/zsyt01.f β€” from the LAPACK manual, bestie

okay so this is zsyt01.f, page 3 of the manual, and it lives in TESTING/LIN/ β€” yes it's a test routine, main character energy but for checking other people's math πŸ’–


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine zsyt01 (uplo, n, a, lda, afac, ldafac, ipiv, c, ldc, rwork,
    resid)

ZSYT01 🫢


🌸 Function/Subroutine Documentation 🌸

subroutine zsyt01 (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 ✨

πŸŽ€ Purpose:

!>
!> ZSYT01 reconstructs a complex symmetric indefinite matrix A from its
!> block L*D*L' or U*D*U' factorization and 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.
!>

so basically it rebuilds A from its factorization β€” literally reverse-engineering the glow-up β€” and then checks how close it got. iconic behavior πŸ‘‘


πŸ’œ Parameters

  • UPLO β€” UPLO is CHARACTER*1. tells it which triangular half of the complex symmetric matrix A you actually stored: = 'U' means upper triangular, = 'L' means lower triangular πŸ”ΌπŸ”½
  • N β€” N is INTEGER. how many rows and columns the matrix A has. N >= 0 (zero is allowed, no judgement πŸ’€)
  • A β€” A is COMPLEX*16 array, dimension (LDA,N). the original complex symmetric matrix A, the one and only 🌟
  • LDA β€” LDA is INTEGER. the leading dimension of the array A. needs LDA >= max(1,N) ⚠️
  • AFAC β€” AFAC is COMPLEX*16 array, dimension (LDAFAC,N). the factored form of A, fr fr β€” it holds the block diagonal matrix D plus the multipliers that build the factor L or U from the block L*D*L' or U*D*U' factorization, exactly as computed by ZSYTRF 🧚
  • LDAFAC β€” LDAFAC is INTEGER. the leading dimension of the array AFAC. LDAFAC >= max(1,N). ✨
  • IPIV β€” IPIV is INTEGER array, dimension (N). the pivot indices from ZSYTRF, straight from the source 🎯
  • C β€” C is COMPLEX*16 array, dimension (LDC,N). the reconstructed matrix goes here, no notes πŸ’…
  • LDC β€” LDC is INTEGER. the leading dimension of the array C. LDC >= max(1,N). 🌈
  • RWORK β€” RWORK is DOUBLE PRECISION array, dimension (N). scratch space, doing its quiet little job πŸ“
  • RESID β€” RESID is DOUBLE PRECISION. the tea β˜• β€” the actual residual:
    • if UPLO = 'L': norm(L*D*L' - A) / ( N * norm(A) * EPS )
    • if UPLO = 'U': norm(U*D*U' - A) / ( N * norm(A) * EPS )
watch ur LDA, LDAFAC and LDC bestie β€” they all gotta be >= max(1,N) or it's over for you 😭

πŸ‘‘ Author

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

Definition at line 123 of file zsyt01.f.


πŸ¦‹ Author (meta edition)

Generated automatically by Doxygen for LAPACK from the source code. yes the docs generate themselves, we love a self-sufficient queen πŸ’–


and that's the whole page bestie, no cap, every flag and every caveat intact πŸ’…βœ¨

signing off β€” LAPACK, Version 3.12.0, and this little zsyt01.f(3) page πŸŽ€πŸ«Ά see u in the next one 🌸

πŸ“¦ where this page comes from