ZSPT01(3)

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

🌸 ZSPT01(3) β€” like, the packed symmetric-indefinite reconstruction checker, bestie πŸ’…

okay so this one lives in the Library Functions Manual section (section 3, the fun one), and the file itself is:

/home/abuild/rpmbuild/BUILD/lapack-
static-3.12.0-build/lapack-3.12.0/TESTING/LIN/zspt01.f

yes the path is doing the absolute most, i know 😭 it's a testing file, it's that girl, she lives in TESTING/LIN.


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/LIN/zspt01.f β€” that's the whole name, no notes, that's just how it is 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

  • subroutine ZSPT01 (uplo, n, a, afac, ipiv, c, ldc, rwork, resid) β€” the one and only, the main character herself πŸ’«

πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine ZSPT01 (character uplo, integer n, complex*16, dimension( * ) a,
    complex*16, dimension( * ) afac, integer, dimension( * ) ipiv,
    complex*16, dimension( ldc, * ) c, integer ldc, double precision,
    dimension( * ) rwork, double precision resid)

ZSPT01 β€” say it with me, Z-S-P-T-zero-one πŸŽ€


🧚 Purpose 🧚

okay so here's the vibe, straight up:

ZSPT01 reconstructs a symmetric indefinite packed matrix A from its diagonal pivoting factorization A = U*D*U' or A = L*D*L' and computes the residual norm( C - A ) / ( N * norm(A) * EPS ), where C is the reconstructed matrix and EPS is the machine epsilon.

so it rebuilds A from the factorization, then checks how far off the rebuilt thing is. that's the whole personality. lowkey iconic πŸ”₯


🌈 Parameters 🌈

  • UPLO β€” UPLO is CHARACTER*1. tells us which triangular part of the Hermitian matrix A got stored, bestie:
    • = 'U': upper triangular πŸ’œ
    • = 'L': lower triangular πŸ’œ
  • N β€” N is INTEGER. the order of the matrix A. and listen, N >= 0. respect the boundary or else πŸ™ˆ
  • A β€” A is COMPLEX*16 array, dimension (N*(N+1)/2). the original symmetric matrix A, stored as a packed triangular matrix. all cozy and compressed ✨
  • AFAC β€” AFAC is COMPLEX*16 array, dimension (N*(N+1)/2). the factored form of the matrix A, stored as a packed triangular matrix. AFAC contains the block diagonal matrix D and the multipliers used to obtain the factor L or U from the L*D*L' or U*D*U' factorization as computed by ZSPTRF. so like… ZSPTRF did the work, AFAC is holding the receipts πŸ§ΎπŸ’…
  • IPIV β€” IPIV is INTEGER array, dimension (N). the pivot indices from ZSPTRF. that's it, that's the whole job 🎯
  • C β€” C is COMPLEX*16 array, dimension (LDC,N). that's the whole description. no notes. she's mysterious like that πŸ¦‹
  • LDC β€” LDC is INTEGER. the leading dimension of the array C. and LDC >= max(1,N). don't try it any other way, fr fr ⭐
  • RWORK β€” RWORK is DOUBLE PRECISION array, dimension (N). double precision workspace, doing double precision things πŸ’–
  • RESID β€” RESID is DOUBLE PRECISION, and here's how it shakes out:
    • if UPLO = 'L', then norm(L*D*L' - A) / ( N * norm(A) * EPS )
    • if UPLO = 'U', then norm(U*D*U' - A) / ( N * norm(A) * EPS )

same math, different triangle, the duality of woman 🫢


πŸ’€ Author πŸ’€

the whole squad, all of them, no cap:

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

πŸ“ Definition πŸ“

Definition at line 111 of file zspt01.f.

go look at line 111 if you don't believe me 😀


⭐ Author (again, but the meta one) ⭐

Generated automatically by Doxygen for LAPACK from the source code. not a human, a robot did this, and honestly? she ate πŸ€–βœ¨


and that's the page!! mwah πŸ’‹ LAPACK Version 3.12.0, footer date line reads /home/abui...IN/zspt01.f(3) β€” bye bestie, go check your residuals πŸŽ€

πŸ“¦ where this page comes from