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

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

πŸ’… NAME πŸ’…

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

okay so bestie, this is a page from the LAPACK Library Functions Manual (section 3, the library-call girlies πŸŽ€), and it's literally all about one little file: zsyequb.f. That's it. That's the name. slay.


✨ SYNOPSIS ✨

Functions/Subroutines

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

ZSYEQUB β€” that's her. that's the girl. πŸ‘‘


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

subroutine ZSYEQUB (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, double precision, dimension( * ) s, double precision scond, double precision amax, complex*16, dimension( * ) work, integer info)

ZSYEQUB πŸ’«

🌸 Purpose 🌸

!>
!> ZSYEQUB computes row and column scalings intended to equilibrate a
!> symmetric matrix A (with respect to the Euclidean norm) and reduce
!> its condition number. The scale factors S are computed by the BIN
!> algorithm (see references) 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.
!>

so what she does, fr fr: she computes row and column scalings that equilibrate a symmetric matrix A (with respect to the Euclidean norm, no cap) and reduce its condition number. The scale factors S come from the BIN algorithm (the references are down below, iykyk) 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. it's giving mathematically iconic. 🧚


πŸŽ€ Parameters πŸŽ€

  • UPLO β€” is CHARACTER*1. our triangle indicator bestie:
    • = 'U': Upper triangle of A is stored;
    • = 'L': Lower triangle of A is stored.
  • N β€” is INTEGER. The order of the matrix A. N >= 0.
  • A β€” is COMPLEX*16 array, dimension (LDA,N). The N-by-N symmetric matrix whose scaling factors are to be computed. she's the main character here ngl πŸ’œ
  • LDA β€” is INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • S β€” is DOUBLE PRECISION array, dimension (N). If INFO = 0, S contains the scale factors for A.
  • SCOND β€” is DOUBLE PRECISION. 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. (like, don't even bother, bestie πŸ™ˆ)
  • AMAX β€” is DOUBLE PRECISION. Largest absolute value of any matrix element. If AMAX is very close to overflow or very close to underflow, the matrix should be scaled. ⚠️
  • WORK β€” is COMPLEX*16 array, dimension (2*N). just her little workspace, nothing to see here 🫢
  • 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.

πŸ‘‘ Author πŸ‘‘

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

(the academic royalty collab we didn't know we needed 🫑)


⭐ 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

go read the source, bestie. citations are literally self-care. πŸ“š

Definition at line 131 of file zsyequb.f.


πŸ’– Author πŸ’–

Generated automatically by Doxygen for LAPACK from the source code. (not a human, just vibes πŸ€–βœ¨)


LAPACK β€” Version 3.12.0 Β· /home/abui.../zsyequb.f(3)

and that's the whole page diva πŸ’… tysm for reading, mwah πŸ“πŸ’œ

πŸ“¦ where this page comes from