ZPPEQU(3)
π ZPPEQU(3) β zppequ.f
okay so first things first, bestie: this page lives in the Library Functions Manual, and the file it's documenting is literally:
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zppequ.f
that's the whole NAME section, no notes. iconic of it honestly π
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZPPEQU (uplo, n, ap, s, scond, amax, info)
ZPPEQU β that's the whole name, that's the whole vibe π«
π¦ Function/Subroutine Documentation π¦
subroutine ZPPEQU (character uplo, integer n, complex*16, dimension( * ) ap,
double precision, dimension( * ) s, double precision scond, double
precision amax, integer info)
ZPPEQU (again, yes, we know, she said her name twice π
)
πΈ Purpose πΈ
!>
!> ZPPEQU computes row and column scalings intended to equilibrate a
!> Hermitian positive definite matrix A in packed storage and reduce
!> its condition number (with respect to the two-norm). S contains the
!> scale factors, S(i)=1/sqrt(A(i,i)), chosen so that the scaled matrix
!> B with elements B(i,j)=S(i)*A(i,j)*S(j) has ones on the diagonal.
!> This choice of S puts the condition number of B within a factor N of
!> the smallest possible condition number over all possible diagonal
!> scalings.
!>
so basically: you hand her a Hermitian positive definite matrix A in packed storage, and she figures out the glow-up β¨ β a set of scale factors S where S(i)=1/sqrt(A(i,i)), so that the scaled matrix B with B(i,j)=S(i)*A(i,j)*S(j) has ones on the diagonal. and the way she picks S puts the condition number of B within a factor N of the smallest possible condition number over all possible diagonal scalings. she ate that fr fr π₯
π§ Parameters π§
UPLOβUPLO is CHARACTER*1= 'U':Upper triangle of A is stored;= 'L':Lower triangle of A is stored.
pick your fighter: upper or lower triangle, no in-between π
NβN is INTEGER
the order of the matrix A. and N >= 0, periodt.
APβAP is COMPLEX*16 array, dimension (N*(N+1)/2)
this is literally the upper or lower triangle of the Hermitian matrix A, packed columnwise in a linear array. the j-th column of A is stored in AP like so:
if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
yes the index math is giving main character energy, copy it exactly bestie π«Ά
SβS is DOUBLE PRECISION array, dimension (N)
if INFO = 0, S contains the scale factors for A. queen of delivery π
SCONDβSCOND is DOUBLE PRECISION
if INFO = 0, S contains the ratio of the smallest S(i) to the largest S(i). and listen: if SCOND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by S. so like, don't bother, it's fine π
AMAXβAMAX is DOUBLE PRECISION
absolute value of the largest matrix element. if AMAX is very close to overflow or very close to underflow, the matrix should be scaled. β οΈ no cap, pay attention to this one.
INFOβINFO is INTEGER= 0:successful exit π< 0:ifINFO = -i, the i-th argument had an illegal value> 0:ifINFO = i, the i-th diagonal element is nonpositive
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 116 of file zppequ.f. π
β Author β
Generated automatically by Doxygen for LAPACK from the source code. (she's a bot, she's still slaying π)
and that's the whole page, bestie β hope it slaps π¦π
sign-off szn π: this beauty is LAPACK, Version 3.12.0, from /home/abui...RC/zppequ.f(3), generated by Doxygen for LAPACK straight from the source code. 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