SLASD0(3)

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

πŸ’… NAME πŸ’…

ok so this is a page from the Library Functions Manual, and the file it's documenting is:

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

bestie it's a Fortran file, yes we're in that part of the library πŸ’€ β€” but it's actually iconic, stay with me ✨


✨ SYNOPSIS ✨

🫢 Functions/Subroutines

subroutine SLASD0 (n, sqre, d, e, u, ldu, vt, ldvt, smlsiz, iwork, work,
    info)

so SLASD0 computes the singular values of a real upper bidiagonal n-by-m matrix B with diagonal d and off-diagonal e. Used by sbdsdc. no cap, that's the whole vibe πŸŽ€


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

subroutine SLASD0 (integer n, integer sqre, real, dimension( * ) d, real,
    dimension( * ) e, real, dimension( ldu, * ) u, integer ldu, real,
    dimension( ldvt, * ) vt, integer ldvt, integer smlsiz, integer,
    dimension( * ) iwork, real, dimension( * ) work, integer info)

SLASD0 computes the singular values of a real upper bidiagonal n-by-m matrix B with diagonal d and off-diagonal e. Used by sbdsdc. (yes I said it twice, it's important πŸ’…)

🌸 Purpose 🌸

!> !> Using a divide and conquer approach, SLASD0 computes the singular !> value decomposition (SVD) of a real upper bidiagonal N-by-M !> matrix B with diagonal D and offdiagonal E, where M = N + SQRE. !> The algorithm computes orthogonal matrices U and VT such that !> B = U * S * VT. The singular values S are overwritten on D. !> !> A related subroutine, SLASDA, computes only the singular values, !> and optionally, the singular vectors in compact form. !>

ok so literally divide and conquer, main character energy fr fr πŸ‘‘ it hands you U and VT such that B = U * S * VT, and the singular values S get overwritten right on top of D β€” so don't come crying when your D is different, that's the whole point πŸ’€

also shoutout to its sibling SLASDA, who only does singular values, and optionally the singular vectors in compact form. lowkey the chill one of the family πŸ¦‹

πŸ’– Parameters πŸ’–

  • N β€” N is INTEGER. On entry, the row dimension of the upper bidiagonal matrix. This is also the dimension of the main diagonal array D. so like, N is doing double duty and it's slaying ✨
  • SQRE β€” SQRE is INTEGER. Specifies the column dimension of the bidiagonal matrix.
    • = 0: The bidiagonal matrix has column dimension M = N;
    • = 1: The bidiagonal matrix has column dimension M = N+1;
  • D β€” D is REAL array, dimension (N). On entry D contains the main diagonal of the bidiagonal matrix. On exit D, if INFO = 0, contains its singular values. it's giving glow-up transformation πŸ’…
  • E β€” E is REAL array, dimension (M-1). Contains the subdiagonal entries of the bidiagonal matrix. On exit, E has been destroyed. 😭 rip E, you served your purpose and got deleted, no notes
  • U β€” U is REAL array, dimension (LDU, N). On exit, U contains the left singular vectors, if U passed in as (N, N) Identity.
  • LDU β€” LDU is INTEGER. On entry, leading dimension of U.
  • VT β€” VT is REAL array, dimension (LDVT, M). On exit, VT**T contains the right singular vectors, if VT passed in as (M, M) Identity. note the **T bestie, it's transposed, don't @ me πŸ™ˆ
  • LDVT β€” LDVT is INTEGER. On entry, leading dimension of VT.
  • SMLSIZ β€” SMLSIZ is INTEGER. On entry, maximum size of the subproblems at the bottom of the computation tree. it's the lil leaf nodes of the recursion tree 🌸
  • IWORK β€” IWORK is INTEGER array, dimension (8*N). that's 8*N integers, generous king 🫢
  • WORK β€” WORK is REAL array, dimension (3*M**2+2*M). ok so 3*M**2+2*M reals, that's the workspace, it's a lot, plan accordingly πŸŽ€
  • INFO β€” INFO is INTEGER
    • = 0: successful exit. slay πŸ’–
    • < 0: if INFO = -i, the i-th argument had an illegal value.
    • > 0: if INFO = 1, a singular value did not converge. πŸ’€ yeah that one, that's the bad one
ngl the INFO > 0 case is not the vibe β€” a singular value that didn't converge means you don't get your answer. treat it with respect πŸ™

πŸ‘‘ Author πŸ‘‘

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

🧚 Contributors: 🧚

Ming Gu and Huan Ren, Computer Science Division, University of California at Berkeley, USA πŸ‡ΊπŸ‡Έβœ¨

⭐ Definition ⭐

Definition at line 150 of file slasd0.f.


🌈 Author (again) 🌈

Generated automatically by Doxygen for LAPACK from the source code. yes the docs wrote themselves, we love an automated icon πŸ€–πŸ’…


and that's the whole page bestie!! πŸŽ€πŸ’– this cutie is from LAPACK, Version 3.12.0, and the footer date/source is literally the same file path you saw at the top β€” /home/abui...RC/slasd0.f(3). go forth and compute those singular values, you absolute legend πŸ‘‘πŸ¦‹βœ¨

πŸ“¦ where this page comes from