PDPBTRF(l)

πŸ“¦ version 1.5, in ubuntu jammy

πŸ’– PDPBTRF(l) πŸ’–

okay bestie, welcome to the LAPACK corner of the group chat β€” this is PDPBTRF, from LAPACK routine version 1.5, and she is that girl. sit down, grab a boba, we're doing a Cholesky factorization πŸ’…


✨ NAME ✨

PDPBTRF β€” she computes a Cholesky factorization of an N-by-N real banded symmetric positive definite distributed matrix with bandwidth BW. no cap. 🌸


✨ SYNOPSIS ✨

SUBROUTINE PDPBTRF( UPLO, N, BW, A, JA, DESCA, AF, LAF, WORK, LWORK,
                    INFO )

    CHARACTER       UPLO

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

    INTEGER         DESCA( * )

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

look at her. the argument list. the declarations. iconic behavior fr fr 🫢


✨ PURPOSE ✨

so PDPBTRF computes a Cholesky factorization of an N-by-N real banded symmetric positive definite distributed matrix with bandwidth BW, and that matrix is A(1:N, JA:JA+N-1). πŸ’–

and here's the spicy part β€” reordering is used to crank up the parallelism in the factorization. sounds cute, right? well bestie, it comes with a whole personality:

the reordering means the factors you get are DIFFERENT from the ones equivalent sequential codes would hand you. those factors cannot be used directly by users. like, not a vibe you can just take home. BUT β€” and this is the slay β€” you can pass them into subsequent calls to PDPBTRS to solve linear systems. that's her whole purpose. that's the assignment. 😭✨

the factorization has the form 🌈

P A(1:N, JA:JA+N-1) P^T = U' U ,  if UPLO = 'U', or

P A(1:N, JA:JA+N-1) P^T = L L', if UPLO = 'L'

where U is a banded upper triangular matrix and L is banded lower triangular, and P is a permutation matrix. she's giving linear algebra main character energy πŸ‘‘


that's the whole page, bestie β€” no more options to scroll, she said what she said πŸ’œ

πŸ¦‹ this has been LAPACK routine version 1.5, dated 12 May 1997, brought to you with love from your local PDPBTRF(l) girlie. mwah. go solve something. πŸŽ€βœ¨

πŸ“¦ where this page comes from