DBDT05(3)
okay so bestie, you just opened DBDT05(3) from the Library Functions Manual β and yes, the LAPACK girlies are at it again π
β¨. This page is lowkey about checking a (partial) SVD by rebuilding the bidiagonal matrix B, and the math is giving main-character energy π«Ά.
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/dbdt05.f
thatβs the source file, periodt π.
β¨ SYNOPSIS β¨
π§© Functions/Subroutines π§©
subroutine DBDT05 (m, n, a, lda, s, ns, u, ldu, vt, ldvt, work, resid)
DBDT05
π Function/Subroutine Documentation π
hereβs the full signature, wrapped exactly like the source page, because we respect the formatting π«Ά:
subroutine DBDT05 (integer m, integer n, double precision, dimension( lda, *
) a, integer lda, double precision, dimension( * ) s, integer ns, double
precision, dimension( ldu, * ) u, integer ldu, double precision,
dimension( ldvt, * ) vt, integer ldvt, double precision, dimension( * )
work, double precision resid)
DBDT05
π― Purpose: π―
okay so the whole point: DBDT05 reconstructs a bidiagonal matrix B from its (partial) SVD:
S = U' * B * V
where U and V are orthogonal matrices and S is diagonal π¦.
the test ratio to test the singular value decomposition is:
RESID = norm( S - U' * B * V ) / ( n * norm(B) * EPS )
where VT = V' and EPS is the machine precision. no cap, thatβs the whole vibe check π.
π Parameters π
π M
M is INTEGER β the number of rows of the matrices A and U. slay.
π N
N is INTEGER β the number of columns of the matrices A and VT. periodt.
π A
A is DOUBLE PRECISION array, dimension (LDA,N) β the m by n matrix A π.
π LDA
LDA is INTEGER β the leading dimension of the array A. LDA >= max(1,M). bestie, respect the leading dimension π
.
π S
S is DOUBLE PRECISION array, dimension (NS) β the singular values from the (partial) SVD of B, sorted in decreasing order. iconic β.
π NS
NS is INTEGER β the number of singular values/vectors from the (partial) SVD of B π¦.
π U
U is DOUBLE PRECISION array, dimension (LDU,NS) β the n by ns orthogonal matrix U in S = U' * B * V π.
π LDU
LDU is INTEGER β the leading dimension of the array U. LDU >= max(1,N). yes, keep it valid β¨.
π VT
VT is DOUBLE PRECISION array, dimension (LDVT,N) β the n by ns orthogonal matrix V in S = U' * B * V πΈ.
π LDVT
LDVT is INTEGER β the leading dimension of the array VT π.
π WORK
WORK is DOUBLE PRECISION array, dimension (M,N). thatβs the workspace, bestie π§.
π RESID
RESID is DOUBLE PRECISION β the test ratio: norm(S - U' * A * V) / ( n * norm(A) * EPS ). this is the number youβre side-eyeing π.
π Author π
shoutout to the institutions that brought you this page:
Univ. of TennesseeUniv. of California BerkeleyUniv. of Colorado DenverNAG Ltd.
Definition at line 125 of file dbdt05.f. β yes, exact line, we donβt guess π₯.
π Author π
Generated automatically by Doxygen for LAPACK from the source code. β the robots did this one, and they ate π€π
.
mwah π β source/version vibes: LAPACK, Version 3.12.0, page path /home/abui...IG/dbdt05.f(3). bye bestie, go check those singular values π«Άβ¨.
π¦ 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