CBDT05(3)

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

πŸ’… CBDT05(3) β€” like, the Library Functions Manual page, bestie πŸŽ€

okay so first things first: this is a page out of the Library Functions Manual, and the star of the show lives at this exact address, no cap:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/cbdt05.f

that's the whole NAME situation. she's a Fortran file. she's in the TESTING/EIG folder. iconic behavior honestly.


✨ SYNOPSIS ✨

Functions/Subroutines πŸ¦‹

so there's literally one (1) subroutine here and she's the main character:

subroutine CBDT05 (m, n, a, lda, s, ns, u, ldu, vt, ldvt, work, resid)

yep. that's her. CBDT05. go off queen πŸ‘‘


🌸 Function/Subroutine Documentation 🌸

subroutine CBDT05 β€” the full signature, spelled out πŸ’–

subroutine CBDT05 (integer m, integer n, complex, dimension( lda, * ) a,
    integer lda, real, dimension( * ) s, integer ns, complex, dimension( * )
    u, integer ldu, complex, dimension( ldvt, * ) vt, integer ldvt, complex,
    dimension( * ) work, real resid)

CBDT05. that's the name. that's the vibe.

🧚 Purpose 🧚

okay so here's what she actually does:

CBDT05 reconstructs a bidiagonal matrix B from its (partial) SVD:

S = U' * B * V

where U and V are orthogonal matrices and S is diagonal. slay.

and the test ratio used to check the singular value decomposition is:

RESID = norm( S - U' * B * V ) / ( n * norm(B) * EPS )

where VT = V' and EPS is the machine precision. periodt. πŸ’…

πŸŽ€ Parameters πŸŽ€

every single one, in order, no skipping, i'm obsessed with being thorough:

  • M β€” INTEGER. the number of rows of the matrices A and U. that's it, that's her job.
  • N β€” INTEGER. the number of columns of the matrices A and VT. same energy, different axis, we love to see it.
  • A β€” COMPLEX array, dimension (LDA,N). it's the m by n matrix A. your actual data bestie πŸ’œ
  • LDA β€” INTEGER. the leading dimension of the array A. and listen: LDA >= max(1,M). that's a requirement, not a suggestion πŸ™ˆ
  • S β€” REAL array, dimension (NS). the singular values from the (partial) SVD of B, sorted in decreasing order. organized queen 🌈
  • NS β€” INTEGER. the number of singular values/vectors from the (partial) SVD of B. not all of them? that's fine, partial is valid ✨
  • U β€” COMPLEX array, dimension (LDU,NS). the n by ns orthogonal matrix U in S = U' * B * V. go girl 🫢
  • LDU β€” INTEGER. the leading dimension of the array U, and LDU >= max(1,N). respect the constraint or perish 😭
  • VT β€” COMPLEX array, dimension (LDVT,N). the n by ns orthogonal matrix V in S = U' * B * V. yes she's stored transposed, that's just her thing πŸ’€
  • LDVT β€” INTEGER. the leading dimension of the array VT. no inequality given, just vibes. ⭐
  • WORK β€” COMPLEX array, dimension (M,N). scratch space. the backstage crew who never get credit but honestly carry the whole show πŸ“
  • RESID β€” REAL. the test ratio: norm(S - U' * A * V) / ( n * norm(A) * EPS ). the moment of truth, the final grade, the vibe check πŸ”₯

πŸ‘‘ Author πŸ‘‘

the legends behind this:

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

a whole squad. we stan an academic-industrial collab πŸ’–


⭐ Definition ⭐

found her at line 123 of file cbdt05.f. go look, she's right there.


🌈 Author (yes, again) 🌈

Generated automatically by Doxygen for LAPACK from the source code.

so nobody hand-wrote this one, a robot did it. and honestly? the robot ate. πŸ’…βœ¨


okay bestie that's the whole page!! mwah πŸ’– this was LAPACK, version 3.12.0, and the whole thing came out of that same /home/abui...IG/cbdt05.f situation β€” 3️⃣ sections, 1️⃣2️⃣ parameters, 0️⃣ notes left behind πŸŽ€πŸ¦‹πŸŒΈ

πŸ“¦ where this page comes from