/home/abui.../cheequb.f(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

🌸 CHEEQUB β€” the equilibration girlie πŸ’…

okay so this is the manual page for /home/abui.../cheequb.f(3), from the Library Functions Manual, and bestie, it's a whole file:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/cheequb.f

yes that's the NAME section. that's it. that's the name. iconic of it honestly πŸŽ€


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine CHEEQUB (uplo, n, a, lda, s, scond, amax, work, info)

that's CHEEQUB. literally her.


πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine CHEEQUB (character uplo, integer n, complex, dimension( lda, * )
a, integer lda, real, dimension( * ) s, real scond, real amax, complex,
dimension( * ) work, integer info)

CHEEQUB. again. she said it twice just so you'd remember πŸ’–

🎯 Purpose 🎯

so what she does: CHEEQUB computes row and column scalings that are meant to equilibrate a Hermitian matrix A (with respect to the Euclidean norm, no cap) and bring its condition number down. the scale factors S get computed by the BIN algorithm (references are down below, don't worry) so that the scaled matrix B β€” with elements B(i,j) = S(i)*A(i,j)*S(j) β€” has a condition number within a factor N of the smallest possible condition number over all possible diagonal scalings. she's an overachiever. main character energy fr fr πŸ‘‘

🌈 Parameters 🌈

UPLO

UPLO is CHARACTER*1

  • = 'U': Upper triangle of A is stored;
  • = 'L': Lower triangle of A is stored.

pick your triangle, bestie. that's the vibe check 🌸

N

N is INTEGER

the order of the matrix A. N >= 0. zero is allowed, negative is not, we don't do that here πŸ’€

A

A is COMPLEX array, dimension (LDA,N)

the N-by-N Hermitian matrix whose scaling factors are to be computed. she's the whole point of the function, honestly 🫢

LDA

LDA is INTEGER

the leading dimension of the array A. LDA >= max(1,N). not optional. respect the leading dimension 😀

S

S is REAL array, dimension (N)

if INFO = 0, S contains the scale factors for A. little slay of an output array ✨

SCOND

SCOND is REAL

if INFO = 0, S contains the ratio of the smallest S(i) to the largest S(i). if SCOND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by S. so like… don't bother. save your energy πŸ’…

yes, the original really says S there and not SCOND. not me fixing the doc, no ma'am, I'm just the messenger πŸ™ˆ

AMAX

AMAX is REAL

largest absolute value of any matrix element. if AMAX is very close to overflow or very close to underflow, the matrix should be scaled. it's giving "danger zone" 😭

WORK

WORK is COMPLEX array, dimension (2*N)

that's it. that's the whole description. twice as much workspace as you think, bestie πŸ“

INFO

INFO is INTEGER

  • = 0: successful exit πŸŽ‰
  • < 0: if INFO = -i, the i-th argument had an illegal value
  • > 0: if INFO = i, the i-th diagonal element is nonpositive

read your INFO, it's literally telling you what went wrong. communication queen 🌈

πŸ‘‘ Author πŸ‘‘

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

four whole institutions. a collaborative effort. we love to see it 🫢

πŸ“š References: πŸ“š

Livne, O.E. and Golub, G.H., "Scaling by Binormalization", Numerical Algorithms, vol. 35, no. 1, pp. 97-120, January 2004.

DOI 10.1023/B:NUMA.0000016606.32820.69

Tech report version: http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.3.1679

cite your sources, besties. always πŸ“–βœ¨


Definition at line 131 of file cheequb.f. (line 131 specifically. she's been there a while πŸ₯²)


πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code.

no human wrote this page, a robot did, and the robot ate. ate and left no crumbs πŸ€–πŸ’…


okay so that's the whole thing!! and for the cute sign-off: this page is from LAPACK, Version 3.12.0, and the footer's date slot is literally just /home/abui.../cheequb.f(3) β€” like ok go off. mwah, bye bestie, go equilibrate something πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from