/home/abui.../cheequb.f(3)
πΈ 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 saysSthere and notSCOND. 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: ifINFO = -i, thei-th argument had an illegal value> 0: ifINFO = i, thei-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
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms