DBDT01(3)

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

πŸ’… DBDT01(3) β€” like, the bidiagonal reconstruction checker bestie

okay so first thing, the actual name of this page is literally this whole path, no cap:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/dbdt01.f

and it lives in the Library Functions Manual, section 3. slay. it's a Fortran test routine from LAPACK, and yes she's iconic ✨


🌸 SYNOPSIS 🌸

Functions/Subroutines

subroutine DBDT01 (m, n, kd, a, lda, q, ldq, d, e, pt, ldpt, work,
    resid)

DBDT01 🫢


πŸŽ€ Function/Subroutine Documentation πŸŽ€

subroutine DBDT01

subroutine DBDT01 (integer m, integer n, integer kd, double precision,
    dimension( lda, * ) a, integer lda, double precision, dimension( ldq, *
    ) q, integer ldq, double precision, dimension( * ) d, double precision,
    dimension( * ) e, double precision, dimension( ldpt, * ) pt, integer
    ldpt, double precision, dimension( * ) work, double precision resid)

DBDT01, our main character πŸ‘‘

✨ Purpose ✨

!>
!> DBDT01 reconstructs a general matrix A from its bidiagonal form
!>    A = Q * B * P**T
!> where Q (m by min(m,n)) and P**T (min(m,n) by n) are orthogonal
!> matrices and B is bidiagonal.
!>
!> The test ratio to test the reduction is
!>    RESID = norm(A - Q * B * P**T) / ( n * norm(A) * EPS )
!> where EPS is the machine precision.
!>

so basically: she takes her bidiagonal era and rebuilds the whole general matrix A back from it, using A = Q * B * P**T πŸ’« where Q is an m by min(m,n) orthogonal matrix, P**T is a min(m,n) by n orthogonal matrix, and B is bidiagonal, periodt.

then she checks the damage with this test ratio:

RESID = norm(A - Q * B * P**T) / ( n * norm(A) * EPS )

where EPS is the machine precision. literally the vibe check for the reduction πŸ”₯

πŸ’œ Parameters πŸ’œ

  • M β€” ngl, M is INTEGER, and it's the number of rows of the matrices A and Q. rows girlie 🫢
  • N β€” N is INTEGER, and it's the number of columns of the matrices A and P**T. columns bestie 🌸
  • KD β€” KD is INTEGER, and ooooh she has range:
    • If KD = 0, B is diagonal and the array E is not referenced πŸ™ˆ (E is literally sitting this one out)
    • If KD = 1, the reduction was performed by xGEBRD; B is upper bidiagonal if M >= N, and lower bidiagonal if M < N.
    • If KD = -1, the reduction was performed by xGBBRD; B is always upper bidiagonal. no notes πŸ’…
  • A β€” A is DOUBLE PRECISION array, dimension (LDA,N). it's the m by n matrix A. the moment ✨
  • LDA β€” LDA is INTEGER. it's the leading dimension of the array A. constraint: LDA >= max(1,M). respect the bounds or else 😭
  • Q β€” Q is DOUBLE PRECISION array, dimension (LDQ,N). the m by min(m,n) orthogonal matrix Q in the reduction A = Q * B * P**T. she's orthogonal AND thriving πŸ’…
  • LDQ β€” LDQ is INTEGER. the leading dimension of the array Q. constraint: LDQ >= max(1,M). πŸ“
  • D β€” D is DOUBLE PRECISION array, dimension (min(M,N)). the diagonal elements of the bidiagonal matrix B. the main diagonal ate, fr fr πŸ’€
  • E β€” E is DOUBLE PRECISION array, dimension (min(M,N)-1). the superdiagonal elements of the bidiagonal matrix B if m >= n, or the subdiagonal elements of B if m < n. so she's flexible, she can be super OR sub, depends on the mood 😌 (unless KD = 0, in which case, again, E is not referenced β€” she's busy that day)
  • PT β€” PT is DOUBLE PRECISION array, dimension (LDPT,N). the min(m,n) by n orthogonal matrix P**T in the reduction A = Q * B * P**T. πŸ¦‹
  • LDPT β€” LDPT is INTEGER. the leading dimension of the array PT. constraint: LDPT >= max(1,min(M,N)). 🧚
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (M+N). she's the workspace, she carries 🫢
  • RESID β€” RESID is DOUBLE PRECISION. the test ratio: norm(A - Q * B * P**T) / ( n * norm(A) * EPS ). the final verdict, the score, the judgment πŸ”₯
okay real talk: RESID is literally just reporting a ratio β€” this routine checks the reduction, it doesn't fix anything for you. read your RESID, bestie πŸ’€

πŸ‘‘ Author πŸ‘‘

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

the whole squad, iconic πŸ’œ

Definition at line 139 of file dbdt01.f. πŸ“


⭐ Author (the other one) ⭐

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very efficient little bot πŸ€–βœ¨


🌈 and that's the page! brought to you by LAPACK, Version 3.12.0, dated /home/abui...IG/dbdt01.f(3) β€” mwah, stan, bye bestie πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from