DPBTRS(3)
π DPBTRS(3) β bestie's guide to solving banded systems β¨
Okay so like, first things first, this page is dpbtrs.f(3) and it lives in the Library Functions Manual β it's the manpage for DPBTRS from LAPACK and I'm gonna explain it to you like you're my group chat, no cap.
πΈ NAME πΈ
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dpbtrs.f β yes bestie that's the actual full path, it's giving very "I was compiled from source" energy π
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine DPBTRS (uplo, n, kd, nrhs, ab, ldab, b, ldb, info)
DPBTRS
β¨ Function/Subroutine Documentation β¨
subroutine DPBTRS (character uplo, integer n, integer kd, integer nrhs,
double precision, dimension( ldab, * ) ab, integer ldab, double
precision, dimension( ldb, * ) b, integer ldb, integer info)
DPBTRS
π Purpose π
!> !> DPBTRS 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 DPBTRF. !>
So like, the whole vibe is: you've already done the Cholesky factorization with DPBTRF, and now DPBTRS comes in to actually solve A*X = B for a symmetric positive definite band matrix. It's giving "the sequel we deserved" π₯
π Parameters π
π UPLO
!> UPLO is CHARACTER*1 !> = 'U': Upper triangular factor stored in AB; !> = 'L': Lower triangular factor stored in AB. !>
Like, which triangle of the matrix are we working with bestie? 'U' = upper triangular factor is chilling in AB, 'L' = lower triangular factor is the one in AB. Pick your fighter π
π N
!> N is INTEGER !> The order of the matrix A. N >= 0. !>
The order of matrix A, aka how big the whole thing is. And it's gotta be N >= 0 β negative orders are NOT it, periodt.
π 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. !>
The number of superdiagonals when UPLO = 'U', or the number of subdiagonals when UPLO = 'L'. Also KD >= 0, no exceptions. This is what makes it a band matrix, iykyk π¦
π NRHS
!> NRHS is INTEGER !> The number of right hand sides, i.e., the number of columns !> of the matrix B. NRHS >= 0. !>
The number of right hand sides β basically how many columns matrix B has. NRHS >= 0, always. It's giving "how many problems are we solving at once" energy π
π AB
!> AB is DOUBLE PRECISION 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). !>
Okay this one is the main character fr. AB is a DOUBLE PRECISION array with dimension (LDAB,N) and it's holding 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. And the j-th column of U or L gets stored in the j-th column of AB 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).
Copy those index formulas EXACTLY bestie, they are the whole tea π΅
π LDAB
!> LDAB is INTEGER !> The leading dimension of the array AB. LDAB >= KD+1. !>
Leading dimension of the array AB. The rule is LDAB >= KD+1 β don't mess this up or it's gonna be a bad time π
π B
!> B is DOUBLE PRECISION array, dimension (LDB,NRHS) !> On entry, the right hand side matrix B. !> On exit, the solution matrix X. !>
The glow-up of arrays: on entry it's your right hand side matrix B, on exit it's the solution matrix X. Literally transforming in place, we love a come-up story π
π LDB
!> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !>
Leading dimension of the array B. Requirement: LDB >= max(1,N). Noted π
π INFO
!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !>
The vibe check at the end π = 0 means successful exit (slay), and < 0 means if INFO = -i, the i-th argument had an illegal value β so like, one of your args was not it and it's telling you which one. Very helpful fr.
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
π Definition at line 120 of file dpbtrs.f.
π§ Author (of this manpage) π§
Generated automatically by Doxygen for LAPACK from the source code.
okay so that's the whole thing bestie β shoutout to LAPACK Version 3.12.0 for the source and to Doxygen for auto-generating this page from dpbtrs.f(3) π Go solve those banded systems, you're gonna ate π«Άβ¨
π¦ where this page comes from
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- opensuse-leap 16.0: lapack-man 3.12.0-160000.2.2 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms