PSPBTRSV(l)

πŸ“¦ version 1.5, in ubuntu jammy

✨ PSPBTRSV β€” NAME ✨

okay bestie so PSPBTRSV solves a banded triangular system of linear equations πŸ’… like literally:

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

that's the whole vibe. she's a solver, she's a LAPACK routine (version 1.5, in case you were wondering), and she's here to do exactly one thing and do it gorgeously πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

SUBROUTINE PSPBTRSV( UPLO, TRANS, N, BW, NRHS, A, JA, DESCA, B, IB,
                     DESCB, AF, LAF, WORK, LWORK, INFO )

    CHARACTER        TRANS, UPLO

    INTEGER          BW, IB, INFO, JA, LAF, LWORK, N, NRHS

    INTEGER          DESCA( * ), DESCB( * )

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

no cap, that's a lot of arguments. she's high maintenance but she's worth it πŸ’–


🌸 PURPOSE 🌸

PSPBTRSV solves a banded triangular system of linear equations, and it's giving ✨two✨ whole modes:

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 Cholesky factorization code PSPBTRF, and it lives (stored) in A(1:N,JA:JA+N-1) and AF. yes bestie, two homes, she's got range 🏠

the matrix stored in A(1:N, JA:JA+N-1) is either upper or lower triangular according to UPLO β€” like, that's your call, you're the main character here πŸ‘‘

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 (that's you, gorgeous) via the parameter TRANS. so you're basically the director of this whole production 🎬

⚠️ IMPORTANT bestie, do not skip this part: routine PSPBTRF MUST be called first. like, before this one. she will not work without her prequel, periodt. πŸ”₯

so yeah β€” factor with PSPBTRF first, then come let PSPBTRSV do her little solve dance. iconic behaviour only. πŸ’…

this was LAPACK routine, version 1.5, dated 12 May 1997 β€” yeah she's an old soul but she ATE and left no crumbs 🫢✨

πŸ“¦ where this page comes from