ZPST01(3)

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

πŸ’– ZPST01 β€” like, the reconstruction queen of Hermitian positive semidefinite matrices πŸ’–

okay bestie, so this page is from zpst01.f(3), one of the library functions in the LAPACK fam ✨ β€” buckle up, she's a Fortran test routine and she's serving.


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine ZPST01 (uplo, n, a, lda, afac, ldafac, perm, ldperm, piv,
    rwork, resid, rank)

ZPST01 β€” that's her name, that's her whole brand πŸ’…


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

subroutine ZPST01 (character uplo, integer n, complex*16, dimension( lda, *
    ) a, integer lda, complex*16, dimension( ldafac, * ) afac, integer
    ldafac, complex*16, dimension( ldperm, * ) perm, integer ldperm,
    integer, dimension( * ) piv, double precision, dimension( * ) rwork,
    double precision resid, integer rank)

ZPST01 🫢

✨ Purpose ✨

!> !> ZPST01 reconstructs an Hermitian positive semidefinite matrix A !> from its L or U factors and the permutation matrix P and computes !> the residual !> norm( P*L*L'*P' - A ) / ( N * norm(A) * EPS ) or !> norm( P*U'*U*P' - A ) / ( N * norm(A) * EPS ), !> where EPS is the machine epsilon, L' is the conjugate transpose of L, !> and U' is the conjugate transpose of U. !>

Like, she takes the pieces apart, puts them back together via the permutation matrix P, and then checks the residual to see how much of a mess she made 😭 iconic behaviour honestly.


πŸ¦‹ Parameters πŸ¦‹

  • UPLO
!> UPLO is CHARACTER*1 !> Specifies whether the upper or lower triangular part of the !> Hermitian matrix A is stored: !> = 'U': Upper triangular !> = 'L': Lower triangular !>

so basically you pick a side: 'U' for upper triangular, 'L' for lower. main character choice, no cap.

  • N
!> N is INTEGER !> The number of rows and columns of the matrix A. N >= 0. !>

rows and columns, both, same number, N >= 0 fr fr.

  • A
!> A is COMPLEX*16 array, dimension (LDA,N) !> The original Hermitian matrix A. !>

the original Hermitian matrix herself πŸ‘‘

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

leading dimension of A, and she said LDA >= max(1,N), periodt.

  • AFAC
!> AFAC is COMPLEX*16 array, dimension (LDAFAC,N) !> The factor L or U from the L*L' or U'*U !> factorization of A. !>

the factor L or U from the L*L' or U'*U factorization of A β€” the glow-up version, iykyk.

  • LDAFAC
!> LDAFAC is INTEGER !> The leading dimension of the array AFAC. LDAFAC >= max(1,N). !>

leading dimension of AFAC. LDAFAC >= max(1,N). she's consistent bestie.

  • PERM
!> PERM is COMPLEX*16 array, dimension (LDPERM,N) !> Overwritten with the reconstructed matrix, and then with the !> difference P*L*L'*P' - A (or P*U'*U*P' - A) !>

okay so this one gets overwritten twice β€” first with the reconstructed matrix, then with the difference P*L*L'*P' - A (or P*U'*U*P' - A). she's doing double duty, we stan a multitasker πŸ’…

  • LDPERM
!> LDPERM is INTEGER !> The leading dimension of the array PERM. !> LDAPERM >= max(1,N). !>

leading dimension of PERM. (and yes, the original really does say LDAPERM >= max(1,N). β€” not me, I'm just the messenger πŸ™ˆ)

  • PIV
!> PIV is INTEGER array, dimension (N) !> PIV is such that the nonzero entries are !> P( PIV( K ), K ) = 1. !>

this is the permutation lore: the nonzero entries are P( PIV( K ), K ) = 1. literally the whole pivot vibe check ✨

  • RWORK
!> RWORK is DOUBLE PRECISION array, dimension (N) !>

double precision workspace, dimension (N). the little helper 🫢

  • RESID
!> RESID is DOUBLE PRECISION !> If UPLO = 'L', norm(L*L' - A) / ( N * norm(A) * EPS ) !> If UPLO = 'U', norm(U'*U - A) / ( N * norm(A) * EPS ) !>

double precision output, and the formula depends on which side you picked:

  • If UPLO = 'L', it's norm(L*L' - A) / ( N * norm(A) * EPS )
  • If UPLO = 'U', it's norm(U'*U - A) / ( N * norm(A) * EPS )

the residual!! the moment of truth!! 😭πŸ”₯

  • RANK
!> RANK is INTEGER !> number of nonzero singular values of A. !>

integer, and she's literally just the number of nonzero singular values of A. slay.


πŸ‘‘ Author πŸ‘‘

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

the whole friend group contributed to this one πŸ’œ

Definition at line 134 of file zpst01.f.


🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code.

(not a human, just a robot doing her best 🧚)


aaaand that's the page bestie!! πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈ

from the LAPACK source, Version 3.12.0, dated /home/abui...IN/zpst01.f(3) β€” see you in the group chat, mwah πŸ˜šπŸ’…πŸ“
πŸ“¦ where this page comes from