ZDTTRF(l)
π ZDTTRF β bestie's guide to LU-ing a complex tridiagonal matrix π
okay so this is a LAPACK routine, and the whole vibe is: you hand it a complex tridiagonal matrix, it hands you back an LU factorization. no partial pivoting, no drama, just elimination. it's giving "I trust your matrix, bestie." β¨
β¨ NAME β¨
ZDTTRF β computes an LU factorization of a complex tridiagonal matrix A using elimination without partial pivoting. π
π¦ SYNOPSIS π¦
SUBROUTINE ZDTTRF( N, DL, D, DU, INFO )
INTEGER INFO, N
COMPLEX*16 D( * ), DL( * ), DU( * )
πΈ PURPOSE πΈ
ZDTTRF computes an LU factorization of a complex tridiagonal matrix A using elimination without partial pivoting. (say it with me: no pivoting. iykyk. π)
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. so likeβ¦ mostly zeros. queen of minimalism. π
π ARGUMENTS π
N(input)INTEGERβ the order of the matrixA. must satisfyN >= 0. if it's negative, that's not slay, that's a bug. πDL(input/output)COMPLEX array, dimension(N-1)β on entry,DLmust contain the(n-1)subdiagonal elements ofA. on exit,DLgets overwritten by the(n-1)multipliers that define the matrixLfrom the LU factorization ofA. glow-up achieved. β¨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. main character energy, honestly. π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. bye original values, you served well π«ΆINFO(output)INTEGERβ the receipts π:= 0: successful exit. we ate. π< 0: ifINFO = -i, thei-th argument had an illegal value. something you passed in was a mess, bestie π> 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. π¨
β οΈ fr fr, listen up: thatINFO > 0case is NOT a "everything's fine" situation. the routine did finish, butUis singular and any solve on top of it is gonna divide by zero. do not ignore this. it's giving haunted. π
π A LIL NOTE ON THE VIBE π
- no partial pivoting means this is fast and simple, but it also means the routine trusts that your leading minors are fine. that's the trade, that's the deal, that's the tea. π΅
- everything gets overwritten in place:
DL,D, andDUall leave as something new. don't come looking for your original matrix, she's gone π
modified LAPACK routine β 12 May 1997 πΈ this page is a LAPACK routine (version 2.0) situation, and that date is the original one, so shoutout to the 90s for this absolute icon. periodt. π
β¨
π¦ 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