PSGBTRF(l)

πŸ“¦ version 1.5, in ubuntu jammy

πŸ’– PSGBTRF β€” bestie, it's giving LU factorization πŸ’–

okay so this is a LAPACK routine, and yes it's the l manual page (the parallel one, iykyk 🫢). Buckle up, we're doing banded matrix math and it's actually iconic.


✨ NAME ✨

PSGBTRF β€” compute a LU factorization of an N-by-N real banded distributed matrix with bandwidth BWL, BWU. periodt πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

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

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

    INTEGER         DESCA( * ), IPIV( * )

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

🌸 PURPOSE 🌸

So PSGBTRF computes a LU factorization of an N-by-N real banded distributed matrix with bandwidth BWL, BWU: A(1:N, JA:JA+N-1). πŸ¦‹

Here's the tea though, bestie β€” reordering is used to increase parallelism in the factorization. And because of that reordering, the factors you get are DIFFERENT from those produced by equivalent sequential codes. 😭 Like, genuinely different. Not a vibe. Not a bug either, just how it is.

⚠️ so real talk: these factors cannot be used directly by users. Nope. Not happening. They can be used in subsequent calls to PSGBTRS to solve linear systems, and that's the whole point, so use them there. πŸ’–

The factorization has the form

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

where U is a banded upper triangular matrix and L is banded lower triangular, and P and Q are permutation matrices. πŸ‘‘

The matrix Q represents reordering of columns for parallelism's sake, while P represents reordering of rows for numerical stability using classic partial pivoting. two different jobs, two different letters, both slaying πŸ’…βœ¨


and that's the whole page, bestie!! no cap, you're now a PSGBTRF girlie 🧚

this was LAPACK version 1.5, dated 12 May 1997 β€” vintage, but still eating πŸ“

πŸ“¦ where this page comes from