PCPTTRSV(l)

πŸ“¦ version 1.5, in ubuntu jammy

πŸ’– PCPTTRSV πŸ’–

okay bestie, gather round, because we're talking about PCPTTRSV β€” a LAPACK routine, version 1.5, and she is that girl. ✨


✨ NAME ✨

PCPTTRSV solves a tridiagonal triangular system of linear equations, specifically:

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

like. she's solving systems. she's tridiagonal. she's triangular. she's everything. πŸ’…


🌸 SYNOPSIS 🌸

here's the whole cast, no cuts, no edits, we respect the lineup:

SUBROUTINE PCPTTRSV( UPLO, TRANS, N, NRHS, D, E, JA, DESCA, B, IB,
                     DESCB, AF, LAF, WORK, LWORK, INFO )

    CHARACTER        TRANS, UPLO

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

    INTEGER          DESCA( * ), DESCB( * )

    COMPLEX          AF( * ), B( * ), E( * ), WORK( * )

    REAL             D( * )

so TRANS and UPLO are characters, the INTEGER girlies are IB, INFO, JA, LAF, LWORK, N, and NRHS, we've got DESCA( * ) and DESCB( * ) holding it down as integer descriptor arrays, the COMPLEX crew is AF( * ), B( * ), E( * ), and WORK( * ), and D( * ) is the lone REAL. iconic distribution of labor, honestly. πŸŽ€


πŸ¦‹ PURPOSE πŸ¦‹

so, what's the actual assignment? PCPTTRSV solves a tridiagonal triangular system of linear equations, and it's giving you a choice, like a little menu of destiny:

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

or

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

and here's the lore: A(1:N, JA:JA+N-1) is a tridiagonal triangular matrix factor produced by the Cholesky factorization code PCPTTRF, and it's stored in A(1:N,JA:JA+N-1) and AF. two homes, one matrix, we love a girl who's stored in multiple places. πŸ’œ

the matrix stored in A(1:N, JA:JA+N-1) is either upper or lower triangular according to UPLO β€” so UPLO is basically picking her outfit for the day, upper or lower, no in-between. 🌈

and the choice of solving A(1:N, JA:JA+N-1) versus A(1:N, JA:JA+N-1)^H is dictated by the user through the parameter TRANS. yes bestie, you are the main character here. you decide. πŸ‘‘

🚨 okay so this is the important one: Routine PCPTTRF MUST be called first. not "should", not "maybe", not "whenever you feel like it". MUST. no cap. if you skip her, you're on your own and it will not be cute. πŸ’€

that's the whole page, bestie β€” every argument, every array, every letter, nothing left behind, because we don't do half-finished around here. 🫢

this gem is from LAPACK version 1.5, dated 12 May 1997 β€” vintage, retro, still absolutely ate, and we're obsessed. mwah. πŸ’‹ βœ¨πŸŒΈπŸ’–

πŸ“¦ where this page comes from