PCGBTRF(l)

πŸ“¦ version 1.5, in ubuntu jammy

πŸ’– PCGBTRF β€” bestie edition πŸ’–

ok so real talk, this is a LAPACK routine, version 1.5, and it's giving distributed linear algebra in the most iconic way possible. sit down, grab a boba, we're factoring a banded matrix together 🧚✨


🌸 NAME 🌸

PCGBTRF β€” she computes a LU factorization of an N-by-N complex banded distributed matrix with bandwidth BWL, BWU. no cap, that's the whole job description πŸ’…


✨ SYNOPSIS ✨

SUBROUTINE PCGBTRF( N, BWL, BWU, A, JA, DESCA, IPIV, AF, LAF, WORK,
                    LWORK, INFO )

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

    INTEGER         DESCA( * ), IPIV( * )

    COMPLEX         A( * ), AF( * ), WORK( * )

like… look at her. twelve arguments. absolute main character energy πŸ‘‘


πŸ¦‹ PURPOSE πŸ¦‹

okay so here's the tea πŸ“: PCGBTRF computes a LU factorization of an N-by-N complex banded distributed matrix with bandwidth BWL, BWU β€” that's A(1:N, JA:JA+N-1), bestie, write it down.

and here's the part that makes her special: she uses reordering to increase parallelism in the factorization. the way that changes *everything*… 😭

⚠️ because of that reordering, the factors she produces are DIFFERENT from those produced by equivalent sequential codes. not a bug, not a glitch, just her vibe.

and because they're different, those factors cannot be used directly by users. nope, not even you πŸ™ˆ. however, they absolutely can be used in subsequent calls to PCGBTRS to solve linear systems. slay. that's the pipeline πŸ’–

the factorization has the form:

P A(1:N, JA:JA+N-1) Q = L U

where:

  • U is a banded upper triangular matrix β€” go off king
  • L is banded lower triangular β€” yes queen
  • P and Q are permutation matrices

and like, they each have a job, ok:

  • the matrix Q represents reordering of columns for parallelism's sake πŸƒβ€β™€οΈπŸ’¨
  • while P represents reordering of rows for numerical stability, using classic partial pivoting πŸ”₯

so like… one of them is for speed, one of them is for stability. they're both doing the most, and honestly? iconic behaviour. periodt πŸ’…


that's the whole page bestie, no notes 🫢 β€” this was PCGBTRF(l) from LAPACK routine (version 1.5), dated 12 May 1997 ✨ go forth and factor responsibly, mwah πŸ˜˜πŸ’œ

πŸ“¦ where this page comes from