SPOEQU(3)

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

πŸ’… SPOEQU(3) β€” bestie edition πŸŽ€

okay so this whole page lives in the Library Functions Manual, and it's all about the file /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/spoequ.f β€” yes that's the whole path, no I'm not shortening it, it's iconic in its own chaotic way ✨


✨ SYNOPSIS ✨

Functions/Subroutines 🌸

subroutine SPOEQU (n, a, lda, s, scond, amax, info)

That's it. That's the girl. SPOEQU, lowercase lifestyle, seven arguments, living her best life πŸ¦‹


🫢 Function/Subroutine Documentation 🫢

subroutine SPOEQU (integer n, real, dimension( lda, * ) a, integer lda,
    real, dimension( * ) s, real scond, real amax, integer info)

Her name is SPOEQU and she's literally the main character of this page πŸ‘‘

πŸ’– Purpose πŸ’–

SPOEQU computes row and column scalings intended to equilibrate a symmetric positive definite matrix A and reduce its condition number (with respect to the two-norm). S contains the scale factors, S(i) = 1/sqrt(A(i,i)), chosen so that the scaled matrix B with elements B(i,j) = S(i)*A(i,j)*S(j) has ones on the diagonal. This choice of S puts the condition number of B within a factor N of the smallest possible condition number over all possible diagonal scalings.

so basically: take your symmetric positive definite matrix A, compute scale factors so that when you scale everything, the new matrix B has ones on the diagonal β€” B(i,j) = S(i)*A(i,j)*S(j), and each S(i) = 1/sqrt(A(i,i)). the glow-up is real 🧚 and the payoff? the condition number of B lands within a factor N of the smallest possible condition number over all possible diagonal scalings. ate and left no crumbs, fr fr πŸ”₯


🌈 Parameters 🌈

  • N β€” N is INTEGER. it's the order of the matrix A, and N >= 0. no negative eras allowed bestie πŸ™ˆ
  • A β€” A is REAL array, dimension (LDA,N). the N-by-N symmetric positive definite matrix whose scaling factors are being computed. only the diagonal elements of A are referenced β€” so she's not even looking at the rest of the matrix, lowkey efficient πŸ’…
  • LDA β€” LDA is INTEGER. the leading dimension of the array A, and LDA >= max(1,N). respect her boundaries ✨
  • S β€” S is REAL array, dimension (N). if INFO = 0, S contains the scale factors for A. the whole point of the function, honestly πŸŽ€
  • SCOND β€” SCOND is REAL. 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. like, don't bother, it's giving unnecessary effort 🫠
  • 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. she's telling you for your own good 😭
  • INFO β€” INFO is INTEGER.
    • = 0: successful exit πŸŽ‰ slay
    • < 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 showed up, we love a collab πŸ’œ


Definition at line 111 of file spoequ.f. πŸ‘€


⭐ Author (of this page) ⭐

Generated automatically by Doxygen for LAPACK from the source code. yes, the robots wrote this one, and honestly? they understood the assignment πŸ€–βœ¨


and that's the whole page bestie β€” LAPACK, Version 3.12.0, footer energy and all, dated right there in that /home/abui...RC/spoequ.f(3) situation πŸ¦‹ now go equilibrate something symmetric positive definite, iykyk πŸ’…

πŸ“¦ where this page comes from