SRC/cgbtrf.f(3)
π SRC/cgbtrf.f π
okay so this is a LAPACK manpage, bestie β SRC/cgbtrf.f, the whole thing, and I'm gonna walk you through it like we're texting at 2am π«Ά
β¨ SYNOPSIS β¨
π§ Functions/Subroutines
subroutine cgbtrf (m, n, kl, ku, ab, ldab, ipiv, info)β CGBTRF
πΈ Function/Subroutine Documentation πΈ
π subroutine cgbtrf (integer m, integer n, integer kl, integer ku, complex, dimension( ldab, * ) ab, integer ldab, integer, dimension( * ) ipiv, integer info) π
CGBTRF
π Purpose:
!>
!> CGBTRF computes an LU factorization of a complex m-by-n band matrix A
!> using partial pivoting with row interchanges.
!>
!> This is the blocked version of the algorithm, calling Level 3 BLAS.
!>
So like, it factors your band matrix A into LU, with partial pivoting and row swaps. And it's the blocked version β it calls Level 3 BLAS, which is the fast one, iykyk π₯
π Parameters π
M
!> M is INTEGER
!> The number of rows of the matrix A. M >= 0.
!>
N
!> N is INTEGER
!> The number of columns of the matrix A. N >= 0.
!>
KL
!> KL is INTEGER
!> The number of subdiagonals within the band of A. KL >= 0.
!>
KU
!> KU is INTEGER
!> The number of superdiagonals within the band of A. KU >= 0.
!>
AB
!> AB is COMPLEX array, dimension (LDAB,N)
!> On entry, the matrix A in band storage, in rows KL+1 to
!> 2*KL+KU+1; rows 1 to KL of the array need not be set.
!> The j-th column of A is stored in the j-th column of the
!> array AB as follows:
!> AB(kl+ku+1+i-j,j) = A(i,j) for max(1,j-ku)<=i<=min(m,j+kl)
!>
!> On exit, details of the factorization: U is stored as an
!> upper triangular band matrix with KL+KU superdiagonals in
!> rows 1 to KL+KU+1, and the multipliers used during the
!> factorization are stored in rows KL+KU+2 to 2*KL+KU+1.
!> See below for further details.
!>
okay so on entry this is your matrix A in band storage β rows KL+1 through 2*KL+KU+1, and rows 1 to KL? not needed, leave 'em alone π On exit it's holding the tea: U lives in rows 1 to KL+KU+1 as an upper triangular band matrix with KL+KU superdiagonals, and the multipliers go in rows KL+KU+2 to 2*KL+KU+1. Scroll down for the glow-up diagram π
LDAB
!> LDAB is INTEGER
!> The leading dimension of the array AB. LDAB >= 2*KL+KU+1.
!>
IPIV
!> IPIV is INTEGER array, dimension (min(M,N))
!> The pivot indices; for 1 <= i <= min(M,N), row i of the
!> matrix was interchanged with row IPIV(i).
!>
the receipts of which rows got swapped, fr fr π«Ά
INFO
!> INFO is INTEGER
!> = 0: successful exit
!> < 0: if INFO = -i, the i-th argument had an illegal value
!> > 0: if INFO = +i, U(i,i) is exactly zero. The factorization
!> has been completed, but the factor U is exactly
!> singular, and division by zero will occur if it is used
!> to solve a system of equations.
!>
β οΈ bestie listen β if INFO > 0, the factorization finished but U is exactly singular, and you will get division by zero if you try to solve with it. that's not a vibe π
π Author π
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
π¦ Further Details: π¦
!>
!> The band storage scheme is illustrated by the following example, when
!> M = N = 6, KL = 2, KU = 1:
!>
!> On entry: On exit:
!>
!> * * * + + + * * * u14 u25 u36
!> * * + + + + * * 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
!> a21 a32 a43 a54 a65 * m21 m32 m43 m54 m65 *
!> a31 a42 a53 a64 * * m31 m42 m53 m64 * *
!>
!> Array elements marked * are not used by the routine; elements marked
!> + need not be set on entry, but are required by the routine to store
!> elements of U because of fill-in resulting from the row interchanges.
!>
Translation bestie: * means the routine straight up does not touch it, and + means you don't gotta set it on entry, but the routine needs those slots to stash U elements because of fill-in from the row interchanges. iconic behavior honestly β¨
Definition at line 143 of file cgbtrf.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
and that's the whole page, no cap π this lil beauty is from LAPACK, Version 3.12.0, dated SRC/cgbtrf.f(3) β mwah, go factor something ππΈ
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms