CDTTRSV(l)

πŸ“¦ version 1.5, in ubuntu jammy

πŸ’– CDTTRSV β€” the LAPACK routine that solves your tridiagonal systems, bestie πŸ’–

okay so. this is CDTTRSV(l), a LAPACK routine (version 2.0, vintage but iconic ✨), and she's here to solve triangular systems for you. sit down, grab a strawberry πŸ“, and let's get into it.


✨ NAME ✨

CDTTRSV β€” she solves one of the systems of equations L * X = B, L**T * X = B, or L**H * X = B, no cap.


πŸŽ€ SYNOPSIS πŸŽ€

SUBROUTINE CDTTRSV( UPLO, TRANS, N, NRHS, DL, D, DU, B, LDB, INFO )

    CHARACTER       UPLO, TRANS

    INTEGER         INFO, LDB, N, NRHS

    COMPLEX         B( LDB, * ), D( * ), DL( * ), DU( * )

🌸 PURPOSE 🌸

bestie. CDTTRSV solves one of these systems of equations, and she does it flawlessly:

L * X = B,  L**T * X = B,  or  L**H * X = B,
U * X = B,  U**T * X = B,  or  U**H * X = B,

and the L and U in question? they're the factors of the tridiagonal matrix A, coming straight from the LU factorization that CDTTRF computed earlier. it's giving teamwork. it's giving pipeline. 🫢


πŸ’… ARGUMENTS πŸ’…

  • UPLO (input) CHARACTER*1 β€” tells her whether to solve with L or U. you pick, she delivers. πŸ‘‘
  • TRANS (input) CHARACTER β€” the form of the system of equations, choose your fighter:
    • = 'N': A * X = B (No transpose)
    • = 'T': A**T * X = B (Transpose)
    • = 'C': A**H * X = B (Conjugate transpose)
  • N (input) INTEGER β€” the order of the matrix A. the rule is N >= 0. respect the boundary fr fr.
  • NRHS (input) INTEGER β€” the number of right hand sides, aka the number of columns of the matrix B. the rule is NRHS >= 0. lowkey simple.
  • DL (input) COMPLEX array, dimension (N-1) β€” the (n-1) multipliers that define the matrix L from the LU factorization of A. she's the backbone of L, honestly.
  • D (input) COMPLEX array, dimension (N) β€” the n diagonal elements of the upper triangular matrix U from the LU factorization of A. main character energy, obviously, she's the diagonal. πŸ’–
  • DU (input) COMPLEX array, dimension (N-1) β€” the (n-1) elements of the first superdiagonal of U. she lives right above the diagonal and she's thriving.
  • B (input/output) COMPLEX array, dimension (LDB,NRHS) β€” on entry, this is the right hand side matrix B. on exit, B is overwritten by the solution matrix X. heads up bestie, she does not keep the original, that data is gone, so back it up if you need it πŸ™ˆ.
  • LDB (input) INTEGER β€” the leading dimension of the array B. the requirement is LDB >= max(1,N). do not skip this, she will know.
  • INFO (output) INTEGER β€” the vibe report:
    • = 0: successful exit πŸŽ‰ slay
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ’€

real talk: INFO is your friend. if it comes back negative, one of your arguments was illegal, and the index -i tells you which one. go fix it, you got this. πŸ¦‹

🌈 that's a wrap 🌈

this was CDTTRSV from LAPACK routine (version 2.0), a modified LAPACK routine dated 12 May 1997 β€” yes she's an elder but she still ate and left no crumbs πŸ’…βœ¨ periodt.

πŸ“¦ where this page comes from