DLASQ1(3)

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

πŸ¦‹ DLASQ1(3) β€” the singular-values girlie πŸ’…

ok so first things first, the manual name situation: this page lives in the Library Functions Manual section 3, and the source file it's documenting is literally

/home/abuild/rpmbuild/BUILD/lapack-
static-3.12.0-build/lapack-3.12.0/SRC/dlasq1.f

yes that's the whole NAME section, no cap, that's just how Doxygen do. πŸŽ€


✨ SYNOPSIS ✨

Functions/Subroutines

subroutine DLASQ1 (n, d, e, work, info)

DLASQ1 computes the singular values of a real square bidiagonal matrix. Used by sbdsqr. she's a supporting actress but she ATE that role, fr fr. πŸ‘‘


🌸 Function/Subroutine Documentation 🌸

subroutine DLASQ1 (integer n, double precision, dimension( * ) d, double
    precision, dimension( * ) e, double precision, dimension( * ) work,
    integer info)

so what does she do bestie? DLASQ1 computes the singular values of a real square bidiagonal matrix. Used by sbdsqr. that's the whole elevator pitch and honestly it's iconic. ✨

πŸ’– Purpose:

!>
!> DLASQ1 computes the singular values of a real N-by-N bidiagonal
!> matrix with diagonal D and off-diagonal E. The singular values
!> are computed to high relative accuracy, in the absence of
!> denormalization, underflow and overflow. The algorithm was first
!> presented in
!>
!>  by K. V.
!> Fernando and B. N. Parlett, Numer. Math., Vol-67, No. 2, pp. 191-230,
!> 1994,
!>
!> and the present implementation is described in , LAPACK Working Note.
!>

ok the glow-up here: real N-by-N bidiagonal matrix, diagonal D, off-diagonal E, and she computes those singular values to high relative accuracy β€” but ONLY in the absence of denormalization, underflow and overflow. like, she's accurate, she's not a miracle worker. 😭

the algorithm was first presented by K. V. Fernando and B. N. Parlett, Numer. Math., Vol-67, No. 2, pp. 191-230, 1994, and the present implementation is described in , LAPACK Working Note. (the citation slots in the source are lowkey empty, i'm just telling you what's there 🫢)


πŸŽ€ Parameters

  • N β€” N is INTEGER. the number of rows and columns in the matrix. N >= 0. bestie if N is negative we are NOT doing this. 🚫
  • D β€” D is DOUBLE PRECISION array, dimension (N). on entry, D contains the diagonal elements of the bidiagonal matrix whose SVD is desired. on normal exit, D contains the singular values in decreasing order. she reorders, she delivers, she leaves. πŸ’…
  • E β€” E is DOUBLE PRECISION array, dimension (N). on entry, elements E(1:N-1) contain the off-diagonal elements of the bidiagonal matrix whose SVD is desired. on exit, E is overwritten. overwritten!! like, gone, don't come looking for your old E, she's not coming back. πŸ’€
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (4*N). that's four times N, yes, bring snacks, she needs room. πŸ“
  • INFO β€” INFO is INTEGER. the vibe report:
    • = 0: successful exit 🌈 slay
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ™ˆ somebody typed something cursed
    • > 0: the algorithm failed, and here's the breakdown:
      • = 1, a split was marked by a positive value in E
      • = 2, current block of Z not diagonalized after 100*N iterations (in inner while loop). On exit D and E represent a matrix with the same singular values which the calling subroutine could use to finish the computation, or even feed back into DLASQ1 πŸ”₯ (ngl that's kind of a generous failure, she left you the leftovers)
      • = 3, termination criterion of outer while loop not met (program created more than N unreduced blocks) 😭 the outer loop said "no <3"
ok real talk: INFO > 0 means something did go sideways β€” read which code you got, don't just ignore her. = 2 and = 3 are genuinely different situations. 🫢

πŸ‘‘ Author

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

Definition at line 107 of file dlasq1.f.


⭐ Author (again, yes really)

Generated automatically by Doxygen for LAPACK from the source code. she wasn't written, she was generated. main character energy. πŸ’œ


that's the whole page bestie β€” LAPACK, Version 3.12.0, dated /home/abui...RC/dlasq1.f(3). mwah, go compute some singular values, ily πŸ§šπŸ’–

πŸ“¦ where this page comes from