DBDT03(3)
π DBDT03(3) β like, the bidiagonal SVD reconstruction test, bestie
okay so before we even get into it β this page lives at /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/dbdt03.f, it's a Library Functions Manual entry, and honestly? it's giving "quiet little workhorse that keeps your SVD honest." π«Ά
β¨ SYNOPSIS β¨
Functions/Subroutines
subroutine DBDT03 (uplo, n, kd, d, e, u, ldu, s, vt, ldvt, work, resid)β that's the one, that's our girl. DBDT03. π
π Function/Subroutine Documentation π
subroutine DBDT03 (character uplo, integer n, integer kd, double precision,
dimension( * ) d, double precision, dimension( * ) e, double precision,
dimension( ldu, * ) u, integer ldu, double precision, dimension( * ) s,
double precision, dimension( ldvt, * ) vt, integer ldvt, double
precision, dimension( * ) work, double precision resid)
DBDT03. no notes. π
πΈ Purpose πΈ
!> !> DBDT03 reconstructs a bidiagonal matrix B from its 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( B - U * S * VT ) / ( n * norm(B) * EPS ) !> where VT = V' and EPS is the machine precision. !>
so like. it takes your SVD apart, rebuilds B, and then checks how badly you fumbled it. the ratio is literally "how far off are you, scaled by matrix size and machine precision" β and lower is better, periodt. π₯
π Parameters π
UPLOβUPLO is CHARACTER*1. it tells us whether the matrix B is upper or lower bidiagonal:
!> = 'U': Upper bidiagonal !> = 'L': Lower bidiagonal
pick one, bestie, there is no third option. π
NβN is INTEGER. the order of the matrix B. iykyk. βKDβKD is INTEGER. the bandwidth of the bidiagonal matrix B. okay so this one has rules:
!> If KD = 1, the matrix B is bidiagonal, and if KD = 0, B is diagonal and E is !> not referenced. If KD is greater than 1, it is assumed to be !> 1, and if KD is less than 0, it is assumed to be 0.
so likeβ¦ it lowkey clamps itself. KD > 1 β treated as 1, KD < 0 β treated as 0. no cap. π¦
DβD is DOUBLE PRECISION array, dimension (N). thendiagonal elements of the bidiagonal matrix B. the main characters, honestly. πEβE is DOUBLE PRECISION array, dimension (N-1). the(n-1)superdiagonal elements of B ifUPLO = 'U', or the(n-1)subdiagonal elements of B ifUPLO = 'L'. know the difference, it matters. β¨UβU is DOUBLE PRECISION array, dimension (LDU,N). thenbynorthogonal matrix U in the reductionB = U'*A*P. (yes it saysAandPin there, that's what the page says, we don't fix, we report π)LDUβLDU is INTEGER. the leading dimension of the array U.LDU >= max(1,N). respect the bound or perish. π«ΆSβS is DOUBLE PRECISION array, dimension (N). the singular values from the SVD of B, sorted in decreasing order. biggest first, always. πVTβVT is DOUBLE PRECISION array, dimension (LDVT,N). thenbynorthogonal matrix V' in the reductionB = U * S * V'. note the transpose energy πLDVTβLDVT is INTEGER. the leading dimension of the array VT.WORKβWORK is DOUBLE PRECISION array, dimension (2*N). scratch space. it's not doing anything glamorous, it's just holding the vibes. πRESIDβRESID is DOUBLE PRECISION. the test ratio:
!> The test ratio: norm(B - U * S * V') / ( n * norm(A) * EPS )
β Author β
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
(academic royalty, fr fr π)
Definition at line 133 of file dbdt03.f.
π Author (the meta one) π
Generated automatically by Doxygen for LAPACK from the source code. it did not write itself, it was generated, and it ate. π
okay that's the whole page, no skips, no summaries β and a cute little sign-off: this was LAPACK, Version 3.12.0, documented at /home/abui...IG/dbdt03.f(3). go test your SVDs, bestie, and may your RESID stay tiny π¦β¨π
π¦ 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