PDGBTRS(l)

πŸ“¦ version 1.5, in ubuntu jammy

πŸ’– NAME πŸ’–

PDGBTRS β€” bestie she solves a system of linear equations πŸ’…

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

That's the whole gig. No cap. ✨

(This one lives in the LAPACK manual, so it's PDGBTRS(l) if you're being formal about it.)


✨ SYNOPSIS ✨

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

    CHARACTER       TRANS

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

    INTEGER         DESCA( * ), DESCB( * ), IPIV(*)

    DOUBLE PRECISION A( * ), AF( * ), B( * ), WORK( * )

Okay so here's the whole cast, and yes we're doing a vibe check on every single one of them because that's just who I am 🫢

  • TRANS β€” the CHARACTER one 🌈
  • BWU, BWL, IB, INFO, JA, LAF, LWORK, N, NRHS β€” all INTEGER, all iconic πŸ‘‘
  • DESCA( * ), DESCB( * ), IPIV(*) β€” INTEGER arrays, they're doing a whole descriptor moment πŸŽ€
  • A( * ), AF( * ), B( * ), WORK( * ) β€” DOUBLE PRECISION arrays, the real main characters πŸ’–

🌸 PURPOSE 🌸

PDGBTRS solves a system of linear equations


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

(not the first line of that equation pair being literally blank in the source 😭 we love a typo-forward queen, but anyway β€”)

where A(1:N, JA:JA+N-1) is the matrix used to produce the factors stored in A(1:N,JA:JA+N-1) and AF by PDGBTRF.

A(1:N, JA:JA+N-1) is an N-by-N real banded distributed matrix with bandwidth BWL, BWU. Periodt. πŸ’…

⚠️ Routine PDGBTRF MUST be called first. Like, MUST must. Not optional, not "I'll do it later", not "it's giving YOLO". Do not skip this step or the whole thing falls apart, fr fr. πŸ™ˆ

That's the page, bestie πŸ¦‹ go call PDGBTRF first and slay πŸ’œ

β€” from the LAPACK routine version 1.5 era, dated 12 May 1997, aka the manual page that ate and left no crumbs πŸŽ€βœ¨

πŸ“¦ where this page comes from