SRC/zpbtrs.f(3)

πŸ’… NAME

SRC/zpbtrs.f β€” bestie, this is the page for the zpbtrs routine, and honestly? she's that girl. ✨


πŸ¦‹ SYNOPSIS

Functions/Subroutines

subroutine zpbtrs (uplo, n, kd, nrhs, ab, ldab, b, ldb, info)
ZPBTRS β€” say it with me now πŸ‘‘

🌸 Function/Subroutine Documentation

✨ subroutine zpbtrs

subroutine zpbtrs (character uplo, integer n, integer kd, integer nrhs,
    complex*16, dimension( ldab, * ) ab, integer ldab, complex*16,
    dimension( ldb, * ) b, integer ldb, integer info)

ZPBTRS β€” the icon herself. πŸŽ€

πŸ’– Purpose:

!>
!> ZPBTRS solves a system of linear equations A*X = B with a Hermitian
!> positive definite band matrix A using the Cholesky factorization
!> A = U**H *U or A = L*L**H computed by ZPBTRF.
!>

So like, lowkey the whole point: you've got a system A*X = B, A is a Hermitian positive definite band matrix, and you already ran ZPBTRF to get the Cholesky factorization (A = U**H *U or A = L*L**H). Now zpbtrs swoops in and actually solves it for you. Main character energy, fr fr. πŸ’…

🌈 Parameters

  • UPLO β€” UPLO is CHARACTER*1 β€” which triangle of the factor is chillin' in AB:
    • = 'U': upper triangular factor stored in AB;
    • = 'L': lower triangular factor stored in AB. πŸ’– Gotta match what you gave ZPBTRF, bestie, or it's giving chaos.
  • N β€” N is INTEGER β€” the order of the matrix A. Requirement: N >= 0. ✨
  • KD β€” KD is INTEGER β€” the number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'. Requirement: KD >= 0. πŸ¦‹ Band width energy.
  • NRHS β€” NRHS is INTEGER β€” the number of right hand sides, i.e. the number of columns of the matrix B. Requirement: NRHS >= 0. 🌸
  • AB β€” AB is COMPLEX*16 array, dimension (LDAB,N) β€” the triangular factor U or L from the Cholesky factorization A = U**H *U or A = L*L**H 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).

🫢 Yes the indexing is a whole vibe. Write it down, don't guess.

  • LDAB β€” LDAB is INTEGER β€” the leading dimension of the array AB. Requirement: LDAB >= KD+1. ⭐
  • B β€” B is COMPLEX*16 array, dimension (LDB,NRHS) β€” on entry, the right hand side matrix B. On exit, the solution matrix X. πŸ”₯ She goes in as B and comes out as X, okay?? Glow up.
  • LDB β€” LDB is INTEGER β€” the leading dimension of the array B. Requirement: LDB >= max(1,N). πŸ’œ
  • INFO β€” INFO is INTEGER β€” the receipts:
    • = 0: successful exit πŸŽ‰
    • < 0: if INFO = -i, the i-th argument had an illegal value πŸ’€

πŸ‘‘ Author

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

🧚 Definition at line 120 of file zpbtrs.f.


πŸ“ Author

Generated automatically by Doxygen for LAPACK from the source code. (Not me, I just gave her a personality. πŸ™ˆ)


πŸ’€ Warning-ish reminder, no cap: those AB index formulas and all the >= bounds are load-bearing. Don't freestyle them. The INFO < 0 case literally exists to call you out on the i-th bad argument, so like… respect it. 🫢

okay that's the whole page, mwah πŸ’‹ β€” LAPACK, Version 3.12.0, dated to that SRC/zpbtrs.f(3) moment. Slay, go solve your banded system. 🌈✨

πŸ“¦ where this page comes from