SRC/cpoequb.f(3)
hey bestie π welcome to the SRC/cpoequb.f(3) page from the Library Functions Manual β the file in the spotlight is SRC/cpoequb.f, and it's giving βsubroutine with main character energy.β π
β¨ NAME β¨
SRC/cpoequb.f β that's the name. Short, sweet, and absolutely ate. π
π¦ SYNOPSIS π¦
π§ Functions/Subroutines π§
okay so the synopsis has exactly one little star:
subroutine cpoequb (n, a, lda, s, scond, amax, info)
CPOEQUB
That's CPOEQUB, no cap. β
πΈ Function/Subroutine Documentation πΈ
subroutine cpoequb (integer n, complex, dimension( lda, * ) a, integer lda,
real, dimension( * ) s, real scond, real amax, integer info)
CPOEQUB
π Purpose π
okay so CPOEQUB computes row and column scalings that are intended to equilibrate a Hermitian positive definite matrix A and reduce its condition number (with respect to the two-norm). The scale factors are in S, with 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. β¨
okay, the glow-up from CPOEQU is that this routine restricts the scaling factors to a power of the radix. Barring over- and underflow, scaling by these factors introduces no additional rounding errors. The catch is that the scaled diagonal entries are no longer approximately 1 β instead they lie between sqrt(radix) and 1/sqrt(radix). Trade-off acknowledged, still iconic. π
π Parameters π
NβNisINTEGER: the order of the matrixA.N >= 0. πΈAβAisCOMPLEXarray, dimension(LDA,N): theN-by-NHermitian positive definite matrix whose scaling factors are to be computed. Only the diagonal elements ofAare referenced. π¦LDAβLDAisINTEGER: the leading dimension of the arrayA.LDA >= max(1,N). βSβSisREALarray, dimension(N): ifINFO = 0,Scontains the scale factors forA. πSCONDβSCONDisREAL: 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. (yes, the page saysSright there β I'm just the messenger π) π«ΆAMAXβAMAXisREAL: absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled. π₯INFOβINFOisINTEGER:= 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.
Definition at line 118 of file cpoequb.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page, bestie π«Ά the footer stamps this as LAPACK Version 3.12.0 / SRC/cpoequb.f(3) β mwah, go scale something safely. π
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms