geequ(3)
π geequ(3) β Library Functions Manual π
okay so this is geequ from the <pink>Library Functions Manual</pink>, and it's literally the equilibration girlies' whole thing. Buckle up bestie, we're doing linear algebra self-care π
β¨ NAME β¨
geequ β geequ: equilibration β¨
π SYNOPSIS π
Functions
subroutine cgeequ (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)βCGEEQUsubroutine dgeequ (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)βDGEEQUsubroutine sgeequ (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)βSGEEQUsubroutine zgeequ (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)βZGEEQU
π«Ά Detailed Description
no extra lore here, bestie β this section is just a heading in the original. The real tea is in the function documentation below π
π₯ Function Documentation π₯
β subroutine cgeequ β
subroutine cgeequ (integer m, integer n, complex, dimension( lda, * ) a,
integer lda, real, dimension( * ) r, real, dimension( * ) c, real
rowcnd, real colcnd, real amax, integer info)
CGEEQU π
π¦ Purpose:
ok so what it actually does π
CGEEQU computes row and column scalings intended to equilibrate an M-by-N matrix A and reduce its condition number. R returns the row scale factors and C the column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elements B(i,j)=R(i)*A(i,j)*C(j) have absolute value 1.
R(i) and C(j) are restricted to be between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number of A but works well in practice. (ngl that's kind of iconic of it.)
πΈ Parameters πΈ
MβM is INTEGER. The number of rows of the matrixA.M >= 0.NβN is INTEGER. The number of columns of the matrixA.N >= 0.AβA is COMPLEX array, dimension (LDA,N). TheM-by-Nmatrix whose equilibration factors are to be computed.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).RβR is REAL array, dimension (M). IfINFO = 0orINFO > M,Rcontains the row scale factors forA.CβC is REAL array, dimension (N). IfINFO = 0,Ccontains the column scale factors forA.ROWCNDβROWCND is REAL. IfINFO = 0orINFO > M,ROWCNDcontains the ratio of the smallestR(i)to the largestR(i). IfROWCND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byR.COLCNDβCOLCND is REAL. IfINFO = 0,COLCNDcontains the ratio of the smallestC(i)to the largestC(i). IfCOLCND >= 0.1, it is not worth scaling byC.AMAXβAMAX is REAL. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFO is INTEGER= 0: successful exit π< 0: ifINFO = -i, thei-th argument had an illegal value π> 0: ifINFO = i, andiis<= M: thei-th row ofAis exactly zero π> M: the(i-M)-th column ofAis exactly zero π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 138 of file cgeequ.f.
β subroutine dgeequ β
subroutine dgeequ (integer m, integer n, double precision, dimension( lda, *
) a, integer lda, double precision, dimension( * ) r, double precision,
dimension( * ) c, double precision rowcnd, double precision colcnd,
double precision amax, integer info)
DGEEQU π«Ά
π¦ Purpose:
DGEEQU computes row and column scalings intended to equilibrate an M-by-N matrix A and reduce its condition number. R returns the row scale factors and C the column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elements B(i,j)=R(i)*A(i,j)*C(j) have absolute value 1.
R(i) and C(j) are restricted to be between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number of A but works well in practice.
πΈ Parameters πΈ
MβM is INTEGER. The number of rows of the matrixA.M >= 0.NβN is INTEGER. The number of columns of the matrixA.N >= 0.AβA is DOUBLE PRECISION array, dimension (LDA,N). TheM-by-Nmatrix whose equilibration factors are to be computed.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).RβR is DOUBLE PRECISION array, dimension (M). IfINFO = 0orINFO > M,Rcontains the row scale factors forA.CβC is DOUBLE PRECISION array, dimension (N). IfINFO = 0,Ccontains the column scale factors forA.ROWCNDβROWCND is DOUBLE PRECISION. IfINFO = 0orINFO > M,ROWCNDcontains the ratio of the smallestR(i)to the largestR(i). IfROWCND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byR.COLCNDβCOLCND is DOUBLE PRECISION. IfINFO = 0,COLCNDcontains the ratio of the smallestC(i)to the largestC(i). IfCOLCND >= 0.1, it is not worth scaling byC.AMAXβAMAX is DOUBLE PRECISION. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFO is INTEGER= 0: successful exit π< 0: ifINFO = -i, thei-th argument had an illegal value π> 0: ifINFO = i, andiis<= M: thei-th row ofAis exactly zero π> M: the(i-M)-th column ofAis exactly zero π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 137 of file dgeequ.f.
β subroutine sgeequ β
subroutine sgeequ (integer m, integer n, real, dimension( lda, * ) a,
integer lda, real, dimension( * ) r, real, dimension( * ) c, real
rowcnd, real colcnd, real amax, integer info)
SGEEQU π
π¦ Purpose:
SGEEQU computes row and column scalings intended to equilibrate an M-by-N matrix A and reduce its condition number. R returns the row scale factors and C the column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elements B(i,j)=R(i)*A(i,j)*C(j) have absolute value 1.
R(i) and C(j) are restricted to be between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number of A but works well in practice.
πΈ Parameters πΈ
MβM is INTEGER. The number of rows of the matrixA.M >= 0.NβN is INTEGER. The number of columns of the matrixA.N >= 0.AβA is REAL array, dimension (LDA,N). TheM-by-Nmatrix whose equilibration factors are to be computed.LDAβLDA is INTEGER. The leading dimension of the arrayA.LDA >= max(1,M).RβR is REAL array, dimension (M). IfINFO = 0orINFO > M,Rcontains the row scale factors forA.CβC is REAL array, dimension (N). IfINFO = 0,Ccontains the column scale factors forA.ROWCNDβROWCND is REAL. IfINFO = 0orINFO > M,ROWCNDcontains the ratio of the smallestR(i)to the largestR(i). IfROWCND >= 0.1andAMAXis neither too large nor too small, it is not worth scaling byR.COLCNDβCOLCND is REAL. IfINFO = 0,COLCNDcontains the ratio of the smallestC(i)to the largestC(i). IfCOLCND >= 0.1, it is not worth scaling byC.AMAXβAMAX is REAL. Absolute value of largest matrix element. IfAMAXis very close to overflow or very close to underflow, the matrix should be scaled.INFOβINFO is INTEGER= 0: successful exit π< 0: ifINFO = -i, thei-th argument had an illegal value π> 0: ifINFO = i, andiis<= M: thei-th row ofAis exactly zero π> M: the(i-M)-th column ofAis exactly zero π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 137 of file sgeequ.f.
β subroutine zgeequ β
subroutine zgeequ (integer m, integer n, complex*16, dimension( lda, * ) a,
integer lda, double precision, dimension( * ) r, double precision,
dimension( * ) c, double precision rowcnd, double precision colcnd,
double precision amax, integer info)
ZGEEQU π
π¦ Purpose:
ZGEEQU computes row and column scalings intended to equilibrate an M-by-N matrix A and reduce its condition number. R returns the row scale factors and C the column scale factors, chosen to try to make the largest element in each row and column of the matrix B with elements B(i,j)=R(i)*A(i,j)*C(j) have absolute value 1.
R(i) and C(j) are restricted to be between SMLNUM = smallest safe number and BIGNUM = largest safe number. Use of these scaling factors is not guaranteed to reduce the condition number of A but works well in practice.
...and that's literally where part 1 cuts off bestie π the rest of zgeequ is coming in part 2, don't go anywhere πΈ
MπΈ β it's anINTEGER, and it's the number of rows of the matrixA. Like,M >= 0, always. No negative rows bestie, that's not a thing.Nπ¦ β also anINTEGER, the number of columns ofA. Same deal:N >= 0.Aπ β aCOMPLEX*16 array, dimension(LDA,N). This is the actualM-by-Nmatrix whose equilibration factors we're out here computing. She's the main character of this whole function, periodt.LDAβ βINTEGER, the leading dimension of the arrayA. Gotta respect her:LDA >= max(1,M). Not optional, the vibes demand it.Rπ βDOUBLE PRECISION array, dimension(M). IfINFO = 0orINFO > M, thenRis where the row scale factors forAlive. So she's holding the row receipts.Cπ βDOUBLE PRECISION array, dimension(N). IfINFO = 0,Ccontains the column scale factors forA. Column receipts, separate tab.ROWCNDβ¨ β aDOUBLE PRECISION. IfINFO = 0orINFO > M, it holds the ratio of the smallestR(i)to the largestR(i). And here's the tea: ifROWCND >= 0.1andAMAXis neither too large nor too small, it's genuinely not worth scaling byR. Like, why bother, the numbers are already fine.COLCNDπ βDOUBLE PRECISIONtoo. IfINFO = 0, it contains the ratio of the smallestC(i)to the largestC(i). And ifCOLCND >= 0.1, it is not worth scaling byC. Same energy, column edition.AMAXπ₯ βDOUBLE PRECISION. The absolute value of the largest matrix element. Now listen: ifAMAXis very close to overflow or very close to underflow, the matrix should be scaled. That's a real warning, ngl, don't sleep on it β those are the danger zones πINFOπ βINTEGER, and she's the whole status report, so let's break it all the way down:= 0: successful exit π everything slayed, we're done here.< 0: ifINFO = -i, then the i-th argument had an illegal value. Somebody passed something cursed π> 0: ifINFO = i, andiis:<= M: the i-th row ofAis exactly zero. Like, completely zero. Empty. Nothing going on there π> M: the(i-M)-th column ofAis exactly zero. Same situation, column flavour.
π Author π
Say thank you to the institutions, bestie, they did the work:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 138 of file zgeequ.f. β
π«Ά Author π«Ά
This page was generated automatically by Doxygen for LAPACK straight from the source code. So like, don't come for the formatting, a robot wrote it π§
And that's the whole page, bestie β SHE'S DONE π
This was LAPACK, Version 3.12.0, page geequ(3), and you absolutely ate that reading comprehension. No cap. πβ¨π¦
π¦ 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