CDTTRF(l)
π CDTTRF(l) β the LAPACK girlies' guide to tridiagonal LU π
okay bestie, so this is CDTTRF from the LAPACK routine crew (version 2.0, she's a classic), and she's about to factor a complex tridiagonal matrix for you. no partial pivoting. we're doing this raw. let's GO π¦
β¨ NAME β¨
CDTTRF β she computes an LU factorization of a complex tridiagonal matrix A using elimination without partial pivoting. that's the whole vibe. π
πΈ SYNOPSIS πΈ
SUBROUTINE CDTTRF( N, DL, D, DU, INFO )
INTEGER INFO, N
COMPLEX D( * ), DL( * ), DU( * )
π PURPOSE π
so like, CDTTRF computes an LU factorization of a complex tridiagonal matrix A using elimination without partial pivoting. yes, without. we're brave. we're fearless. we're trusting the math. π
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. like, U is that girl who only shows up in two places and slays in both of them. β¨
π ARGUMENTS π
N(input)INTEGERβ the order of the matrixA. the rule isN >= 0, no exceptions, we do not do negative dimensions in this house. π«DL(input/output)COMPLEXarray, 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 she comes in as one thing and leaves as another. glow-up energy. πD(input/output)COMPLEXarray, 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 diagonal ofAin, main diagonal ofUout. iconic behavior. πDU(input/output)COMPLEXarray, 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. she's just out here living her best superdiagonal life. πINFO(output)INTEGERβ the vibe check report, and it goes like this:= 0: successful exit. we ate. π½οΈ< 0: ifINFO = -i, the i-th argument had an illegal value. somebody passed something cursed, and she's telling you exactly which one. π> 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. that's not a drill bestie, that's a π moment. singularUmeans no solving for you.
β οΈ real talk: if you getINFO > 0and then go solve a system anyway, you're dividing by zero. she warned you. she told you.U(i,i)is literally zero. do not pass go. π
π that's the whole page π
modified LAPACK routine, dated 12 May 1997 β yeah she's vintage, she's a classic, she's been serving tridiagonal LU since before you were born and she still hits. stan her. π«Άβ¨
no cap, go factor something. π
π¦ 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