SPBTRF(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

🫢 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: if INFO = -i, the i-th argument had an illegal value πŸ’€
  • > 0: if INFO = i, the leading principal minor of order i is 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