ZPST01(3)
π 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'snorm(L*L' - A) / ( N * norm(A) * EPS ) - If
UPLO = 'U', it'snorm(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
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms