SDTTRF(l)
π SDTTRF(l) β the LAPACK routine, bestie edition π
okay so you're in section l of the manual and you found SDTTRF β that's a LAPACK routine, version 2.0, and she's here to do exactly one job and do it slayfully. no cap.
β¨ NAME β¨
SDTTRF β compute an LU factorization of a complex tridiagonal matrix A using elimination without partial pivoting. yes. no pivoting. we're rawdogging the elimination, bestie π«Ά
πΈ SYNOPSIS πΈ
SUBROUTINE SDTTRF( N, DL, D, DU, INFO )
INTEGER INFO, N
REAL D( * ), DL( * ), DU( * )
look at her. five arguments. she's not complicated, she's just precise π
π¦ PURPOSE π¦
SDTTRF computes an LU factorization of a complex tridiagonal matrix A using elimination without partial pivoting. (iykyk what that means for stability β she said what she said.)
the factorization has the form
A = L * U
where L is a product of unit lower bidiagonal matrices and U is upper triangular with nonzeros in only the main diagonal and first superdiagonal. it's giving "sparse but make it structured" β¨
π ARGUMENTS π
N(input)INTEGERβ the order of the matrixA. and listen:N >= 0. that's the vibe check. negativeN? not on her watch.DL(input/output)COMPLEX array, dimension(N-1)β on entry,DLmust contain the(n-1)subdiagonal elements ofA. on exit,DLis overwritten by the(n-1)multipliers that define the matrixLfrom the LU factorization ofA. so likeβ¦ she borrows your subdiagonal and gives you back multipliers instead. trade offer, honestly πD(input/output)COMPLEX array, dimension(N)β on entry,Dmust contain the diagonal elements ofA. on exit,Dis overwritten by thendiagonal elements of the upper triangular matrixUfrom the LU factorization ofA. in goesA's diagonal, out comesU's diagonal. glow-up complete πDU(input/output)COMPLEX array, dimension(N-1)β on entry,DUmust contain the(n-1)superdiagonal elements ofA. on exit,DUis overwritten by the(n-1)elements of the first superdiagonal ofU. same energy, different superdiagonal π§INFO(output)INTEGERβ the receipts. she tells you how it went:= 0: successful exit. we love a clean run π< 0: ifINFO = -i, thei-th argument had an illegal value. bestie, you passed something cursed π> 0: ifINFO = i,U(i,i)is exactly zero. the factorization has been completed, but the factorUis exactly singular, and division by zero will occur if it is used to solve a system of equations. so like β she finished the job, but the result is a π. do not go solving systems with that unless you want NaN flavored chaos.
β οΈ real talk: no partial pivoting means no safety net.INFO > 0is not a warning, it's a prophecy. ifU(i,i)is exactly zero, division by zero will happen when you solve. periodt.
π SEE ALSO π
ngl bestie, this page didn't ship a SEE ALSO section, so there's nothing to cross-reference here. go ask the rest of LAPACK, she's around π
and that's the whole page, no notes β¨
this was a modified LAPACK routine, dated 12 May 1997 β shoutout to the elders who wrote her, she's been serving since before some of us were born and she still eats π π«Ά bye bestie, go pivot responsibly (or don't, that's literally the whole point) β
π¦ where this page comes from
- ubuntu jammy: scalapack-doc 1.5-11
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms