/home/abui.../zsyequb.f(3)
π NAME π
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zsyequb.f
okay so bestie, this is a page from the LAPACK Library Functions Manual (section 3, the library-call girlies π), and it's literally all about one little file: zsyequb.f. That's it. That's the name. slay.
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine ZSYEQUB (uplo, n, a, lda, s, scond, amax, work, info)
ZSYEQUB β that's her. that's the girl. π
π¦ Function/Subroutine Documentation π¦
subroutine ZSYEQUB (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, double precision, dimension( * ) s, double precision scond, double precision amax, complex*16, dimension( * ) work, integer info)
ZSYEQUB π«
πΈ Purpose πΈ
!>
!> ZSYEQUB computes row and column scalings intended to equilibrate a
!> symmetric matrix A (with respect to the Euclidean norm) and reduce
!> its condition number. The scale factors S are computed by the BIN
!> algorithm (see references) so that the scaled matrix B with elements
!> B(i,j) = S(i)*A(i,j)*S(j) has a condition number within a factor N of
!> the smallest possible condition number over all possible diagonal
!> scalings.
!>
so what she does, fr fr: she computes row and column scalings that equilibrate a symmetric matrix A (with respect to the Euclidean norm, no cap) and reduce its condition number. The scale factors S come from the BIN algorithm (the references are down below, iykyk) so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has a condition number within a factor N of the smallest possible condition number over all possible diagonal scalings. it's giving mathematically iconic. π§
π Parameters π
UPLOβ isCHARACTER*1. our triangle indicator bestie:= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored.
Nβ isINTEGER. The order of the matrixA.N >= 0.Aβ isCOMPLEX*16array, dimension(LDA,N). TheN-by-Nsymmetric matrix whose scaling factors are to be computed. she's the main character here ngl πLDAβ isINTEGER. The leading dimension of the arrayA.LDA >= max(1,N).Sβ isDOUBLE PRECISIONarray, dimension(N). IfINFO = 0,Scontains the scale factors forA.SCONDβ isDOUBLE PRECISION. IfINFO = 0,Scontains the ratio of the smallestS(i)to the largestS(i). IfSCOND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byS. (like, don't even bother, bestie π)AMAXβ isDOUBLE PRECISION. Largest absolute value of any matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled. β οΈWORKβ isCOMPLEX*16array, dimension(2*N). just her little workspace, nothing to see here π«ΆINFOβ isINTEGER:= 0: successful exit π< 0: ifINFO = -i, thei-th argument had an illegal value π> 0: ifINFO = i, thei-th diagonal element is nonpositive.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
(the academic royalty collab we didn't know we needed π«‘)
β References: β
Livne, O.E. and Golub, G.H., "Scaling by Binormalization", Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004.
DOI 10.1023/B:NUMA.0000016606.32820.69
Tech report version: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.1679
go read the source, bestie. citations are literally self-care. π
Definition at line 131 of file zsyequb.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code. (not a human, just vibes π€β¨)
LAPACK β Version 3.12.0 Β· /home/abui.../zsyequb.f(3)
and that's the whole page diva π tysm for reading, 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