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

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

πŸ’– ZHEEQUB β€” the manual page, but make it make sense πŸ’–

ok so this is from the Library Functions Manual, and the file is literally /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/zheequb.f. bestie, we are reading a Fortran file path as a NAME. iconic behavior, honestly. πŸŽ€


✨ SYNOPSIS ✨

Functions/Subroutines

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

ZHEEQUB 🫢


🌸 Function/Subroutine Documentation 🌸

subroutine ZHEEQUB (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)

ZHEEQUB πŸ’…

πŸ¦‹ Purpose:

!>
!> ZHEEQUB computes row and column scalings intended to equilibrate a
!> Hermitian 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 basically: this routine looks at your Hermitian matrix and goes "girl, you need to chill" and computes scale factors S to equilibrate it, using the BIN algorithm (check the references below, iykyk). the scaled matrix B has elements B(i,j) = S(i)*A(i,j)*S(j) and its condition number lands within a factor N of the smallest possible condition number over all possible diagonal scalings. highkey impressive. ✨

πŸ’œ Parameters

  • UPLO β€” UPLO is CHARACTER*1, and it tells us which triangle we're working with: = 'U': Upper triangle of A is stored; / = 'L': Lower triangle of A is stored. pick your fighter. πŸ™ˆ
  • N β€” N is INTEGER, the order of the matrix A. and N >= 0, no negative nonsense allowed, periodt. πŸ‘‘
  • A β€” A is COMPLEX*16 array, dimension (LDA,N). it's the N-by-N Hermitian matrix whose scaling factors are to be computed. she's the main character of this whole operation. 🌟
  • LDA β€” LDA is INTEGER, the leading dimension of the array A. requirement: LDA >= max(1,N). respect the constraint or the vibe check fails. πŸ’€
  • S β€” S is DOUBLE PRECISION array, dimension (N). if INFO = 0, S contains the scale factors for A. the glow-up juice, fr fr. πŸ“
  • SCOND β€” SCOND is DOUBLE PRECISION. if INFO = 0, S contains the ratio of the smallest S(i) to the largest S(i). and here's the tea: if SCOND >= 0.1 and AMAX is neither too large nor too small, it is not worth scaling by S. don't do all that work for nothing bestie. 😭
  • AMAX β€” AMAX is DOUBLE PRECISION, the largest absolute value of any matrix element. if AMAX is very close to overflow or very close to underflow, the matrix should be scaled. that's not a suggestion, that's a warning. πŸ”₯
  • WORK β€” WORK is COMPLEX*16 array, dimension (2*N). it's the workspace. it works so you don't have to. 🫢
  • INFO β€” INFO is INTEGER, and its whole personality is:
    • = 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 whole squad contributed. group project but make it actually successful. 🌈

⭐ 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

citation game: immaculate. the BIN algorithm's origin story, right there. πŸ“šβœ¨


Definition at line 131 of file zheequb.f.

πŸŽ€ Author (yes, again) πŸŽ€

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very diligent robot doing its lil job. πŸ€–πŸ’–


LAPACK β€” Version 3.12.0 πŸŒΈπŸ’œ

kisses, this page was served fresh from /home/abui.../zheequb.f(3), mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from