SLASD0(3)
π 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 arrayD. so like,Nis 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 dimensionM = N;= 1: The bidiagonal matrix has column dimensionM = N+1;
DβD is REAL array, dimension (N). On entryDcontains the main diagonal of the bidiagonal matrix. On exitD, ifINFO = 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,Ehas been destroyed. π ripE, you served your purpose and got deleted, no notesUβU is REAL array, dimension (LDU, N). On exit,Ucontains the left singular vectors, ifUpassed in as(N, N)Identity.LDUβLDU is INTEGER. On entry, leading dimension ofU.VTβVT is REAL array, dimension (LDVT, M). On exit,VT**Tcontains the right singular vectors, ifVTpassed in as(M, M)Identity. note the**Tbestie, it's transposed, don't @ me πLDVTβLDVT is INTEGER. On entry, leading dimension ofVT.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's8*Nintegers, generous king π«ΆWORKβWORK is REAL array, dimension (3*M**2+2*M). ok so3*M**2+2*Mreals, that's the workspace, it's a lot, plan accordingly πINFOβINFO is INTEGER= 0: successful exit. slay π< 0: ifINFO = -i, thei-th argument had an illegal value.> 0: ifINFO = 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
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms