DLASV2(3)

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

πŸ’– DLASV2(3) β€” or, the little subroutine that could (SVD of a 2-by-2 triangular matrix) πŸ’–

okay so bestie. you know how sometimes you have a tiny 2Γ—2 triangular matrix and you just need its singular value decomposition, like, immediately? that's literally this. this page lives at:

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

yes the whole path, she's long, she's iconic, she's giving filesystem realness πŸ’…


✨ SYNOPSIS ✨

Functions/Subroutines 🫢

subroutine DLASV2 (f, g, h, ssmin, ssmax, snr, csr, snl, csl)

DLASV2 computes the singular value decomposition of a 2-by-2 triangular matrix. that's it, that's the whole vibe πŸŽ€


🌸 Function/Subroutine Documentation 🌸

subroutine DLASV2 (double precision f, double precision g, double precision h, double precision ssmin, double precision ssmax, double precision snr, double precision csr, double precision snl, double precision csl)

DLASV2 computes the singular value decomposition of a 2-by-2 triangular matrix. no cap. πŸ¦‹

πŸ’œ Purpose:

DLASV2 computes the singular value decomposition of a 2-by-2 triangular matrix
   [  F   G  ]
   [  0   H  ].
On return, abs(SSMAX) is the larger singular value, abs(SSMIN) is the smaller singular value, and (CSL,SNL) and (CSR,SNR) are the left and right singular vectors for abs(SSMAX), giving the decomposition
   [ CSL  SNL ] [  F   G  ] [ CSR -SNR ]  =  [ SSMAX   0   ]
   [-SNL  CSL ] [  0   H  ] [ SNR  CSR ]     [  0    SSMIN ].

like… she factors. she always factors. main character energy 🧚


✨ Parameters ✨

  • F β€” F is DOUBLE PRECISION. it's the (1,1) element of the 2-by-2 matrix. top-left bestie, the one everybody meets first 🫢
  • G β€” G is DOUBLE PRECISION. the (1,2) element of the 2-by-2 matrix. yes she's the off-diagonal one, the chaotic one, we love her πŸ™ˆ
  • H β€” H is DOUBLE PRECISION. the (2,2) element of the 2-by-2 matrix. bottom-right, holding it down ⭐
  • SSMIN β€” SSMIN is DOUBLE PRECISION. abs(SSMIN) is the smaller singular value. smol but mighty πŸ“
  • SSMAX β€” SSMAX is DOUBLE PRECISION. abs(SSMAX) is the larger singular value. she's the moment, she's the icon πŸ‘‘
  • SNL β€” SNL is DOUBLE PRECISION. (that's it, that's the note β€” no extra description on this one, the manpage literally just says the type and moves on πŸ’€)
  • CSL β€” CSL is DOUBLE PRECISION. the vector (CSL, SNL) is a unit left singular vector for the singular value abs(SSMAX) πŸ’–
  • SNR β€” SNR is DOUBLE PRECISION. (same deal β€” type line only, no extra prose, we don't gatekeep, we just report 😭)
  • CSR β€” CSR is DOUBLE PRECISION. the vector (CSR, SNR) is a unit right singular vector for the singular value abs(SSMAX) 🌈

πŸŽ€ Author πŸŽ€

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

an absolute supergroup, ngl πŸ”₯


πŸ¦‹ Further Details: πŸ¦‹

Any input parameter may be aliased with any output parameter.

that's right, aliasing is allowed, she's flexible like that ✨

Barring over/underflow and assuming a guard digit in subtraction, all output quantities are correct to within a few units in the last place (ulps).

so, like, correct to a few ulps β€” accuracy queen πŸ’…

In IEEE arithmetic, the code works correctly if one matrix element is infinite.

one infinite element? she said "i can work with that" 😌

Overflow will not occur unless the largest singular value itself overflows or is within a few ulps of overflow.

overflow only shows up if the biggest singular value overflows or is, like, right there at the overflow line. no drama otherwise 🫢

Underflow is harmless if underflow is gradual. Otherwise, results may correspond to a matrix modified by perturbations of size near the underflow threshold.

okay so this one matters bestie β€” if underflow is gradual you're fine, but if it's not, your results might as well be from a matrix that got nudged by perturbations near the underflow threshold. so like, know your hardware, mmkay? ⚠️

Definition at line 135 of file dlasv2.f. πŸ“


⭐ Author (again, the meta one) ⭐

Generated automatically by Doxygen for LAPACK from the source code. yes she was born from a doc generator, and she still ate πŸ’€πŸŽ€


okay that's the whole page bestie, no notes πŸ’œ

this was LAPACK, Version 3.12.0, and the file is /home/abui...RC/dlasv2.f(3) β€” mwah, go decompose something 2-by-2 πŸ¦‹βœ¨πŸŒΈ
πŸ“¦ where this page comes from