CDTTRSV(l)
π 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 withLorU. 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 matrixA. the rule isN >= 0. respect the boundary fr fr.NRHS(input)INTEGERβ the number of right hand sides, aka the number of columns of the matrixB. the rule isNRHS >= 0. lowkey simple.DL(input)COMPLEXarray, dimension(N-1)β the(n-1)multipliers that define the matrixLfrom theLUfactorization ofA. she's the backbone ofL, honestly.D(input)COMPLEXarray, dimension(N)β thendiagonal elements of the upper triangular matrixUfrom theLUfactorization ofA. main character energy, obviously, she's the diagonal. πDU(input)COMPLEXarray, dimension(N-1)β the(n-1)elements of the first superdiagonal ofU. she lives right above the diagonal and she's thriving.B(input/output)COMPLEXarray, dimension(LDB,NRHS)β on entry, this is the right hand side matrixB. on exit,Bis overwritten by the solution matrixX. 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 arrayB. the requirement isLDB >= max(1,N). do not skip this, she will know.INFO(output)INTEGERβ the vibe report:= 0: successful exit π slay< 0: ifINFO = -i, thei-th argument had an illegal value π
real talk:INFOis your friend. if it comes back negative, one of your arguments was illegal, and the index-itells 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
- 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