DBDT01(3)
π 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,MisINTEGER, and it's the number of rows of the matricesAandQ. rows girlie π«ΆNβNisINTEGER, and it's the number of columns of the matricesAandP**T. columns bestie πΈKDβKDisINTEGER, and ooooh she has range:- If
KD = 0,Bis diagonal and the arrayEis not referenced π (E is literally sitting this one out) - If
KD = 1, the reduction was performed byxGEBRD;Bis upper bidiagonal ifM >= N, and lower bidiagonal ifM < N. - If
KD = -1, the reduction was performed byxGBBRD;Bis always upper bidiagonal. no notes π
- If
AβAisDOUBLE PRECISIONarray, dimension(LDA,N). it's thembynmatrixA. the moment β¨LDAβLDAisINTEGER. it's the leading dimension of the arrayA. constraint:LDA >= max(1,M). respect the bounds or else πQβQisDOUBLE PRECISIONarray, dimension(LDQ,N). thembymin(m,n)orthogonal matrixQin the reductionA = Q * B * P**T. she's orthogonal AND thriving πLDQβLDQisINTEGER. the leading dimension of the arrayQ. constraint:LDQ >= max(1,M). πDβDisDOUBLE PRECISIONarray, dimension(min(M,N)). the diagonal elements of the bidiagonal matrixB. the main diagonal ate, fr fr πEβEisDOUBLE PRECISIONarray, dimension(min(M,N)-1). the superdiagonal elements of the bidiagonal matrixBifm >= n, or the subdiagonal elements ofBifm < n. so she's flexible, she can be super OR sub, depends on the mood π (unlessKD = 0, in which case, again,Eis not referenced β she's busy that day)PTβPTisDOUBLE PRECISIONarray, dimension(LDPT,N). themin(m,n)bynorthogonal matrixP**Tin the reductionA = Q * B * P**T. π¦LDPTβLDPTisINTEGER. the leading dimension of the arrayPT. constraint:LDPT >= max(1,min(M,N)). π§WORKβWORKisDOUBLE PRECISIONarray, dimension(M+N). she's the workspace, she carries π«ΆRESIDβRESIDisDOUBLE PRECISION. the test ratio:norm(A - Q * B * P**T) / ( n * norm(A) * EPS ). the final verdict, the score, the judgment π₯
okay real talk:RESIDis literally just reporting a ratio β this routine checks the reduction, it doesn't fix anything for you. read yourRESID, 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
- 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