CDTTRF(l)

πŸ“¦ version 1.5, in ubuntu jammy

πŸ’– 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 matrix A. the rule is N >= 0, no exceptions, we do not do negative dimensions in this house. 🚫
  • DL (input/output) COMPLEX array, dimension (N-1) β€” on entry, DL must contain the (n-1) subdiagonal elements of A. on exit, DL is overwritten by the (n-1) multipliers that define the matrix L from the LU factorization of A. so she comes in as one thing and leaves as another. glow-up energy. πŸ’…
  • D (input/output) COMPLEX array, dimension (N) β€” on entry, D must contain the diagonal elements of A. on exit, D is overwritten by the n diagonal elements of the upper triangular matrix U from the LU factorization of A. main diagonal of A in, main diagonal of U out. iconic behavior. πŸ‘‘
  • DU (input/output) COMPLEX array, dimension (N-1) β€” on entry, DU must contain the (n-1) superdiagonal elements of A. on exit, DU is overwritten by the (n-1) elements of the first superdiagonal of U. 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: if INFO = -i, the i-th argument had an illegal value. somebody passed something cursed, and she's telling you exactly which one. πŸ™ˆ
    • > 0: if INFO = i, U(i,i) is exactly zero. the factorization has been completed, but the factor U is 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. singular U means no solving for you.
⚠️ real talk: if you get INFO > 0 and 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