SPOEQU(3)
π SPOEQU(3) β bestie edition π
okay so this whole page lives in the Library Functions Manual, and it's all about the file /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/spoequ.f β yes that's the whole path, no I'm not shortening it, it's iconic in its own chaotic way β¨
β¨ SYNOPSIS β¨
Functions/Subroutines πΈ
subroutine SPOEQU (n, a, lda, s, scond, amax, info)
That's it. That's the girl. SPOEQU, lowercase lifestyle, seven arguments, living her best life π¦
π«Ά Function/Subroutine Documentation π«Ά
subroutine SPOEQU (integer n, real, dimension( lda, * ) a, integer lda,
real, dimension( * ) s, real scond, real amax, integer info)
Her name is SPOEQU and she's literally the main character of this page π
π Purpose π
SPOEQU computes row and column scalings intended to equilibrate a symmetric positive definite matrix A 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: take your symmetric positive definite matrix A, compute scale factors so that when you scale everything, the new matrix B has ones on the diagonal β B(i,j) = S(i)*A(i,j)*S(j), and each S(i) = 1/sqrt(A(i,i)). the glow-up is real π§ and the payoff? the condition number of B lands within a factor N of the smallest possible condition number over all possible diagonal scalings. ate and left no crumbs, fr fr π₯
π Parameters π
NβNisINTEGER. it's the order of the matrixA, andN >= 0. no negative eras allowed bestie πAβAisREAL array, dimension (LDA,N). the N-by-N symmetric positive definite matrix whose scaling factors are being computed. only the diagonal elements of A are referenced β so she's not even looking at the rest of the matrix, lowkey efficient πLDAβLDAisINTEGER. the leading dimension of the arrayA, andLDA >= max(1,N). respect her boundaries β¨SβSisREAL array, dimension (N). ifINFO = 0,Scontains the scale factors forA. the whole point of the function, honestly πSCONDβSCONDisREAL. ifINFO = 0,Scontains the ratio of the smallestS(i)to the largestS(i). and here's the tea β β ifSCOND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byS. like, don't bother, it's giving unnecessary effort π«AMAXβAMAXisREAL. absolute value of largest matrix element. ifAMAXis very close to overflow or very close to underflow, the matrix should be scaled. she's telling you for your own good πINFOβINFOisINTEGER.= 0: successful exit π slay< 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.
the whole squad showed up, we love a collab π
Definition at line 111 of file spoequ.f. π
β Author (of this page) β
Generated automatically by Doxygen for LAPACK from the source code. yes, the robots wrote this one, and honestly? they understood the assignment π€β¨
and that's the whole page bestie β LAPACK, Version 3.12.0, footer energy and all, dated right there in that /home/abui...RC/spoequ.f(3) situation π¦ now go equilibrate something symmetric positive definite, iykyk π
π¦ 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