PSDBTRSV(l)

πŸ“¦ version 1.5, in ubuntu jammy

πŸ’… NAME πŸ’…

okay so bestie, listen β€” PSDBTRSV(l) is here to solve a banded triangular system of linear equations and it does it exactly like this:

A(1:N, JA:JA+N-1) * X = B(IB:IB+N-1, 1:NRHS)

that's it. that's the whole job. slay. ✨


πŸŽ€ SYNOPSIS πŸŽ€

like, here's the whole cast of characters:

SUBROUTINE PSDBTRSV( UPLO, TRANS, N, BWL, BWU, NRHS, A, JA, DESCA, B,
                     IB, DESCB, AF, LAF, WORK, LWORK, INFO )

    CHARACTER        TRANS, UPLO

    INTEGER          BWL, BWU, IB, INFO, JA, LAF, LWORK, N, NRHS

    INTEGER          DESCA( * ), DESCB( * )

    REAL             A( * ), AF( * ), B( * ), WORK( * )

no cap, that's a lot of arguments. it's giving "big family energy" πŸ’€ but every single one matters, okay?


πŸ’– PURPOSE πŸ’–

PSDBTRSV solves a banded triangular system of linear equations, and it's flexible like that β€” it'll do

A(1:N, JA:JA+N-1) * X = B(IB:IB+N-1, 1:NRHS)

or

A(1:N, JA:JA+N-1)^T * X = B(IB:IB+N-1, 1:NRHS)

where A(1:N, JA:JA+N-1) is a banded triangular matrix factor produced by the Gaussian elimination code PS@(dom_pre)BTRF and is stored in A(1:N,JA:JA+N-1) and AF.

the matrix stored in A(1:N, JA:JA+N-1) is either upper or lower triangular according to UPLO, and the choice of solving A(1:N, JA:JA+N-1) or A(1:N, JA:JA+N-1)^T is dictated by the user through the parameter TRANS. your call, bestie, you're the main character here πŸ‘‘

🚨 not me forgetting this: routine PSDBTRF MUST be called first. like, it's not a suggestion, it's the whole vibe check. no PSDBTRF, no solving. periodt.

and that's the tea, bestie 🫢 go forth and solve your banded triangular systems, you absolute icon.

this was LAPACK routine, version 1.5, dated 12 May 1997 β€” yes, she's vintage, and yes, she still ate. πŸ’œ

πŸ“¦ where this page comes from