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) β€” CGEEQU
  • subroutine dgeequ (m, n, a, lda, r, c, rowcnd, colcnd, amax, info) β€” DGEEQU
  • subroutine sgeequ (m, n, a, lda, r, c, rowcnd, colcnd, amax, info) β€” SGEEQU
  • subroutine 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 matrix A. M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix A. N >= 0.
  • A β€” A is COMPLEX array, dimension (LDA,N). The M-by-N matrix whose equilibration factors are to be computed.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • R β€” R is REAL array, dimension (M). If INFO = 0 or INFO > M, R contains the row scale factors for A.
  • C β€” C is REAL array, dimension (N). If INFO = 0, C contains the column scale factors for A.
  • ROWCND β€” ROWCND is REAL. If INFO = 0 or INFO > M, ROWCND contains the ratio of the smallest R(i) to the largest R(i). If ROWCND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by R.
  • COLCND β€” COLCND is REAL. If INFO = 0, COLCND contains the ratio of the smallest C(i) to the largest C(i). If COLCND >= 0.1, it is not worth scaling by C.
  • AMAX β€” AMAX is REAL. Absolute value of largest matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled.
  • INFO β€” INFO is INTEGER
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ™ˆ
    • > 0: if INFO = i, and i is
      • <= M: the i-th row of A is exactly zero πŸ’€
      • > M: the (i-M)-th column of A is 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 matrix A. M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix A. N >= 0.
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). The M-by-N matrix whose equilibration factors are to be computed.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • R β€” R is DOUBLE PRECISION array, dimension (M). If INFO = 0 or INFO > M, R contains the row scale factors for A.
  • C β€” C is DOUBLE PRECISION array, dimension (N). If INFO = 0, C contains the column scale factors for A.
  • ROWCND β€” ROWCND is DOUBLE PRECISION. If INFO = 0 or INFO > M, ROWCND contains the ratio of the smallest R(i) to the largest R(i). If ROWCND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by R.
  • COLCND β€” COLCND is DOUBLE PRECISION. If INFO = 0, COLCND contains the ratio of the smallest C(i) to the largest C(i). If COLCND >= 0.1, it is not worth scaling by C.
  • AMAX β€” AMAX is DOUBLE PRECISION. Absolute value of largest matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled.
  • INFO β€” INFO is INTEGER
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ™ˆ
    • > 0: if INFO = i, and i is
      • <= M: the i-th row of A is exactly zero πŸ’€
      • > M: the (i-M)-th column of A is 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 matrix A. M >= 0.
  • N β€” N is INTEGER. The number of columns of the matrix A. N >= 0.
  • A β€” A is REAL array, dimension (LDA,N). The M-by-N matrix whose equilibration factors are to be computed.
  • LDA β€” LDA is INTEGER. The leading dimension of the array A. LDA >= max(1,M).
  • R β€” R is REAL array, dimension (M). If INFO = 0 or INFO > M, R contains the row scale factors for A.
  • C β€” C is REAL array, dimension (N). If INFO = 0, C contains the column scale factors for A.
  • ROWCND β€” ROWCND is REAL. If INFO = 0 or INFO > M, ROWCND contains the ratio of the smallest R(i) to the largest R(i). If ROWCND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by R.
  • COLCND β€” COLCND is REAL. If INFO = 0, COLCND contains the ratio of the smallest C(i) to the largest C(i). If COLCND >= 0.1, it is not worth scaling by C.
  • AMAX β€” AMAX is REAL. Absolute value of largest matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled.
  • INFO β€” INFO is INTEGER
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ™ˆ
    • > 0: if INFO = i, and i is
      • <= M: the i-th row of A is exactly zero πŸ’€
      • > M: the (i-M)-th column of A is 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 an INTEGER, and it's the number of rows of the matrix A. Like, M >= 0, always. No negative rows bestie, that's not a thing.
  • N πŸ¦‹ β€” also an INTEGER, the number of columns of A. Same deal: N >= 0.
  • A πŸ’œ β€” a COMPLEX*16 array, dimension (LDA,N). This is the actual M-by-N matrix 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 array A. Gotta respect her: LDA >= max(1,M). Not optional, the vibes demand it.
  • R πŸŽ€ β€” DOUBLE PRECISION array, dimension (M). If INFO = 0 or INFO > M, then R is where the row scale factors for A live. So she's holding the row receipts.
  • C πŸ“ β€” DOUBLE PRECISION array, dimension (N). If INFO = 0, C contains the column scale factors for A. Column receipts, separate tab.
  • ROWCND ✨ β€” a DOUBLE PRECISION. If INFO = 0 or INFO > M, it holds the ratio of the smallest R(i) to the largest R(i). And here's the tea: if ROWCND >= 0.1 and AMAX is neither too large nor too small, it's genuinely not worth scaling by R. Like, why bother, the numbers are already fine.
  • COLCND 🌈 β€” DOUBLE PRECISION too. If INFO = 0, it contains the ratio of the smallest C(i) to the largest C(i). And if COLCND >= 0.1, it is not worth scaling by C. Same energy, column edition.
  • AMAX πŸ”₯ β€” DOUBLE PRECISION. The absolute value of the largest matrix element. Now listen: if AMAX is 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: if INFO = -i, then the i-th argument had an illegal value. Somebody passed something cursed πŸ™ˆ
    • > 0: if INFO = i, and i is:
      • <= M: the i-th row of A is exactly zero. Like, completely zero. Empty. Nothing going on there πŸ’€
      • > M: the (i-M)-th column of A is 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