TESTING/EIG/dstt21.f(3)

πŸ“¦
version 3.12.1 Β· 3 versions
, in arch rolling

πŸ’… TESTING/EIG/dstt21.f πŸ’…

okay so this is a page from the Library Functions Manual β€” yes, that's the actual manual name, it's giving very "official docs" energy β€” and it's all about one lil subroutine that does a vibe check on your matrix decomposition. no cap, she's a tester, and she's judging you (lovingly). 🫢


✨ NAME ✨

TESTING/EIG/dstt21.f β€” that's her, that's the whole name, iconic and to the point πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine dstt21 (n, kband, ad, ae, sd, se, u, ldu, work, result)

DSTT21 πŸŽ€ (that's literally all the synopsis says about her and honestly? mysterious queen behavior)


πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine dstt21 (integer n, integer kband, double precision, dimension( * )
ad, double precision, dimension( * ) ae, double precision, dimension( * ) sd,
double precision, dimension( * ) se, double precision, dimension( ldu, * ) u,
integer ldu, double precision, dimension( * ) work, double precision,
dimension( 2 ) result)

DSTT21 ✨

🌸 Purpose 🌸

bestie. listen. DSTT21 checks a decomposition of the form

A = U S U'

where ' means transpose, A is symmetric tridiagonal, U is orthogonal, and S is diagonal (if KBAND=0) or symmetric tridiagonal (if KBAND=1). she runs two tests, because one is never enough:

RESULT(1) = | A - U S U' | / ( |A| n ulp )

RESULT(2) = | I - UU' | / ( n ulp )

like, accuracy queen fr fr 😭πŸ”₯

πŸŽ€ Parameters πŸŽ€

  • N β€” N is INTEGER. the size of the matrix. if it's zero, DSTT21 does nothing (respect honestly, she's not doing unpaid labor πŸ’€). it must be at least zero.
  • KBAND β€” KBAND is INTEGER. the bandwidth of the matrix S. it may only be zero or one β€” no in-between, no chaos, we stay on the binary. if zero, then S is diagonal and SE is not referenced. if one, then S is symmetric tri-diagonal.
  • AD β€” AD is DOUBLE PRECISION array, dimension (N). the diagonal of the original (unfactored) matrix A. A is assumed to be symmetric tridiagonal. she's the main character πŸ’…
  • AE β€” AE is DOUBLE PRECISION array, dimension (N-1). the off-diagonal of the original (unfactored) matrix A. A is assumed to be symmetric tridiagonal. AE(1) is the (1,2) and (2,1) element, AE(2) is the (2,3) and (3,2) element, etc. β€” yes she repeats herself because symmetry DID that 🌈
  • SD β€” SD is DOUBLE PRECISION array, dimension (N). the diagonal of the (symmetric tri-) diagonal matrix S. cute, simple, diagonal.
  • SE β€” SE is DOUBLE PRECISION array, dimension (N-1). the off-diagonal of the (symmetric tri-) diagonal matrix S. not referenced if KBSND=0 (yes, that's literally what it says β€” KBSND, not KBAND, that's not me, that's the source, iykyk πŸ™ˆ). if KBAND=1, then AE(1) is the (1,2) and (2,1) element, SE(2) is the (2,3) and (3,2) element, etc. (also exactly what it says β€” AE(1) and SE(2), don't come for me πŸ“)
  • U β€” U is DOUBLE PRECISION array, dimension (LDU, N). the orthogonal matrix in the decomposition. she's orthogonal, she's unbothered, she's at a right angle to your nonsense πŸ’œ
  • LDU β€” LDU is INTEGER. the leading dimension of U. LDU must be at least N. no shortcuts bestie.
  • WORK β€” WORK is DOUBLE PRECISION array, dimension (N*(N+1)). it's the workspace, she's just there to hold stuff 🧚
  • RESULT β€” RESULT is DOUBLE PRECISION array, dimension (2). the values computed by the two tests described above. the values are currently limited to 1/ulp, to avoid overflow β€” yes, capped, we don't do overflow in this house πŸ”₯. RESULT(1) is always modified.
⚠️ quick reality check: RESULT(1) being always modified is stated as fact, and the 1/ulp limit is a real constraint, not a suggestion. don't assume anything else about these fields beyond what's written above, okay? πŸ’€

πŸ’– Author πŸ’–

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

all of them. a whole collab. a group project that actually worked πŸ˜­πŸ‘‘

Definition at line 125 of file dstt21.f.


⭐ Author (yes, again) ⭐

Generated automatically by Doxygen for LAPACK from the source code. so technically the author of this page is a robot πŸ€– she's doing her best.


and that's the whole page, bestie! πŸ’…πŸ’–

sign-off: this gorgeous lil doc is LAPACK, Version 3.12.0, and it lives at TESTING/EIG/dstt21.f(3) β€” go off, queen πŸŒΈβœ¨πŸ¦‹

πŸ“¦ where this page comes from