SRC/dgeequb.f(3)
πΈ NAME πΈ
SRC/dgeequb.f(3) β okay bestie, this is the manual page for SRC/dgeequb.f, living its best life in the Library Functions Manual π
β¨
β¨ SYNOPSIS β¨
π Functions/Subroutines π
subroutine dgeequb (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)
Thatβs the iconic DGEEQUB subroutine, showing up exactly like this:
subroutine dgeequb (m, n, a, lda, r, c, rowcnd, colcnd, amax, info)
DGEEQUB
π Function/Subroutine Documentation π
π¦ The dgeequb subroutine π¦
Full signature, no cap:
subroutine dgeequb (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)
This is DGEEQUB, and the whole function is giving βlet me balance your matrix so it behavesβ energy πβ¨
π Purpose π
DGEEQUB 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 an absolute value of at most the radix. π
R(i) and C(j) are restricted to be a power of the radix 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. π«Ά
This routine differs from DGEEQU by restricting the scaling factors to a power of the radix. Barring over- and underflow, scaling by these factors introduces no additional rounding errors. However, the scaled entriesβ magnitudes are no longer approximately 1 but lie between sqrt(radix) and 1/sqrt(radix). π§
π 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 144 of file dgeequb.f. π¦
π«Ά Author π«Ά
Generated automatically by Doxygen for LAPACK from the source code. π
Cute little sign-off bestie: this is LAPACK Version 3.12.0 energy, and thatβs the whole page β mwah πβ¨πΈ
π¦ 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