SRC/spbtrs.f(3)

πŸ’– SRC/spbtrs.f(3) β€” like, the whole manual page, bestie πŸ’–

Okay so this is the man page for SRC/spbtrs.f from the Library Functions Manual and honestly? she's a legend. Let's get into it. 🫢


✨ NAME ✨

SRC/spbtrs.f β€” that's her. That's the file. Periodt. πŸ’…


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine spbtrs (uplo, n, kd, nrhs, ab, ldab, b, ldb, info) β€” SPBTRS. that's the whole vibe. ✨

πŸ¦‹ Function/Subroutine Documentation πŸ¦‹

subroutine spbtrs (character uplo, integer n, integer kd, integer nrhs,
    real, dimension( ldab, * ) ab, integer ldab, real, dimension( ldb, * )
    b, integer ldb, integer info)

SPBTRS. iconic name, iconic subroutine, no notes. πŸ‘‘

πŸŽ€ Purpose πŸŽ€

!> !> SPBTRS solves a system of linear equations A*X = B with a symmetric !> positive definite band matrix A using the Cholesky factorization !> A = UT*U or A = L*LT computed by SPBTRF. !>

so literally what she does is take your system A*X = B, where A is a symmetric positive definite band matrix, and solve it β€” using the Cholesky factorization A = U**T*U or A = L*L**T that SPBTRF already did for you. she's picking up where SPBTRF left off, which is honestly such main character energy. 🌈


πŸ’œ Parameters πŸ’œ

Let's go through them one by one, no skipping, I promise. πŸ“

UPLO πŸ’«

!> UPLO is CHARACTER*1 !> = 'U': Upper triangular factor stored in AB; !> = 'L': Lower triangular factor stored in AB. !>

UPLO is CHARACTER*1 and it's basically the vibe check for which triangle you're working with:

  • 'U' β€” the upper triangular factor is stored in AB
  • 'L' β€” the lower triangular factor is stored in AB

pick your fighter, bestie. πŸ’…

N πŸ”’

!> N is INTEGER !> The order of the matrix A. N >= 0. !>

N is INTEGER, it's the order of the matrix A, and it's gotta be N >= 0. no negatives, she's not about that life. ✨

KD 🌟

!> KD is INTEGER !> The number of superdiagonals of the matrix A if UPLO = 'U', !> or the number of subdiagonals if UPLO = 'L'. KD >= 0. !>

KD is INTEGER β€” the number of superdiagonals of A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. also KD >= 0. yes ma'am. 🫢

NRHS πŸ¦‹

!> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrix B. NRHS >= 0. !>

NRHS is INTEGER β€” the number of right hand sides, aka literally the number of columns of B. and yeah, NRHS >= 0. πŸ’–

AB πŸ‘‘

!> AB is REAL array, dimension (LDAB,N) !> The triangular factor U or L from the Cholesky factorization !> A = UT*U or A = L*LT of the band matrix A, stored in the !> first KD+1 rows of the array. The j-th column of U or L is !> stored in the j-th column of the array AB as follows: !> if UPLO ='U', AB(kd+1+i-j,j) = U(i,j) for max(1,j-kd)<=i<=j; !> if UPLO ='L', AB(1+i-j,j) = L(i,j) for j<=i<=min(n,j+kd). !>

AB is a REAL array, dimension (LDAB,N) and she's carrying the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T of the band matrix A, stored in the first KD+1 rows of the array. the j-th column of U or L lives in the j-th column of AB, and the indexing goes like this:

  • if UPLO ='U', AB(kd+1+i-j,j) = U(i,j) for max(1,j-kd)<=i<=j
  • if UPLO ='L', AB(1+i-j,j) = L(i,j) for j<=i<=min(n,j+kd)

that's the whole map, don't lose it. πŸ—ΊοΈβœ¨

LDAB 🧚

!> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !>

LDAB is INTEGER, she's the leading dimension of the array AB, and the rule is LDAB >= KD+1. non-negotiable. πŸ’…

B πŸŽ€

!> B is REAL array, dimension (LDB,NRHS) !> On entry, the right hand side matrix B. !> On exit, the solution matrix X. !>

B is a REAL array, dimension (LDB,NRHS) and she's doing a glow-up mid-call:

  • on entry β€” the right hand side matrix B
  • on exit β€” the solution matrix X

literally the transformation arc we all deserve. πŸ¦‹πŸ”₯

LDB 🌸

!> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !>

LDB is INTEGER, the leading dimension of the array B, and it's gotta satisfy LDB >= max(1,N). yes, max(1,N), not just N. write that down. πŸ“

INFO ⭐

!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !>

INFO is INTEGER and she's the final report card:

  • = 0 β€” successful exit, we ate, no crumbs πŸ’…
  • < 0 β€” if INFO = -i, the i-th argument had an illegal value, so like… somebody's getting a talking-to 😭

🌈 Author 🌈

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

look at that squad. absolute royalty. πŸ‘‘πŸ‘‘πŸ‘‘πŸ‘‘

🧾 Definition at line 120 of file spbtrs.f. 🧾

exactly there. line 120. spbtrs.f. iykyk. 🫢


πŸ’« Author πŸ’«

Generated automatically by Doxygen for LAPACK from the source code.

yeah, Doxygen did that. auto-generated and still serving looks. πŸ€–βœ¨


and that's the page, bestie! brought to you by LAPACK, Version 3.12.0, for SRC/spbtrs.f(3) β€” go solve those systems, ily, bye! πŸ’–πŸŽ€πŸ’œπŸ¦‹πŸŒΈβ­

πŸ“¦ where this page comes from