DBDT03(3)

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

πŸ’œ 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). the n diagonal 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 if UPLO = 'U', or the (n-1) subdiagonal elements of B if UPLO = 'L'. know the difference, it matters. ✨
  • U β€” U is DOUBLE PRECISION array, dimension (LDU,N). the n by n orthogonal matrix U in the reduction B = U'*A*P. (yes it says A and P in 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). the n by n orthogonal matrix V' in the reduction B = 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