SPBTRF(3)
π«Ά SPBTRF(3) β the Cholesky factorizer for band matrices, bestie edition
okay so first things first, this page lives at /home/abui...RC/spbtrf.f(3) and it's pulled from LAPACK's source, specifically /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/spbtrf.f. We're in the Library Functions Manual section, and honestly? It's giving "quietly essential." Let's get into it. β¨
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/spbtrf.f
That's the whole name. Yes, the entire path. The Fortran source file is the star of the show here. No cap. π
πΈ SYNOPSIS πΈ
Functions/Subroutines
subroutine SPBTRF (uplo, n, kd, ab, ldab, info)
SPBTRF
π Function/Subroutine Documentation π
subroutine SPBTRF (character uplo, integer n, integer kd, real, dimension(
ldab, * ) ab, integer ldab, integer info)
SPBTRF
π Purpose
SPBTRF computes the Cholesky factorization of a real symmetric positive definite band matrix A.
The factorization has the form
A = U**T * U, if UPLO = 'U', or
A = L * L**T, if UPLO = 'L',
where U is an upper triangular matrix and L is lower triangular. So it's the band edition of Cholesky β same energy, way less storage. π₯
π Parameters
UPLO
UPLO is CHARACTER*1
= 'U': Upper triangle of A is stored;= 'L': Lower triangle of A is stored.
Pick a side, bestie. That's it, that's the choice. π
N
N is INTEGER The order of the matrix A. Constraint: 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'. Constraint: KD >= 0.
Basically: how wide the band is. Thin band = happy memory. π¦
AB
AB is REAL array, dimension (LDAB,N)
On entry, the upper or lower triangle of the symmetric band matrix A, stored in the first KD+1 rows of the array. The j-th column of A is stored in the j-th column of the array AB as follows:
if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).
On exit, if INFO = 0, the triangular factor U or L from the Cholesky factorization A = U**T*U or A = L*L**T of the band matrix A, in the same storage format as A.
Same array, new contents. She's efficient like that. β
LDAB
LDAB is INTEGER The leading dimension of the array AB. Constraint: LDAB >= KD+1.
INFO
INFO is INTEGER
= 0: successful exit β¨< 0: ifINFO = -i, thei-th argument had an illegal value π> 0: ifINFO = i, the leading principal minor of orderiis not positive, and the factorization could not be completed. π«
Heads up: a positive INFO doesn't mean "try again with a different vibe" β it means the matrix failed to be positive definite at that point, so the factorization is genuinely not finished. Take it seriously, bestie.
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
A whole committee. Main character ensemble energy. π
π§ Further Details
The band storage scheme is illustrated by the following example, when N = 6, KD = 2, and UPLO = 'U':
On entry: On exit:
* * a13 a24 a35 a46 * * u13 u24 u35 u46
* a12 a23 a34 a45 a56 * u12 u23 u34 u45 u56
a11 a22 a33 a44 a55 a66 u11 u22 u33 u44 u55 u66
Similarly, if UPLO = 'L' the format of A is as follows:
On entry: On exit:
a11 a22 a33 a44 a55 a66 l11 l22 l33 l44 l55 l66
a21 a32 a43 a54 a65 * l21 l32 l43 l54 l65 *
a31 a42 a53 a64 * * l31 l42 l53 l64 * *
Array elements marked * are not used by the routine.
Like, the * slots are literally decorative. Do not put anything meaningful there. The routine will not look at them. Periodt. π
π Contributors
Peter Mayes and Giuseppe Radicati, IBM ECSEC, Rome, March 23, 1989
That's an old contribution and it still slays. Legends, fr fr. π
π¦ Definition
Definition at line 141 of file spbtrf.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
okay that's the whole page!! π«Ά this is LAPACK, Version 3.12.0, living at /home/abui...RC/spbtrf.f(3) β go factor some positive definite band matrices, bestie, you've got this π
β¨π
π¦ 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