/home/abui...RC/dgbsv.f(3)
π NAME
So bestie, the star of the show is this file right here: /home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/dgbsv.f β and the whole page lives in the LAPACK Library Functions Manual, no cap. π«Ά
β¨ SYNOPSIS
π Functions/Subroutines
subroutine DGBSV (n, kl, ku, nrhs, ab, ldab, ipiv, b, ldb, info)β okay so this is the one:DGBSVcomputes the solution to system of linear equationsA * X = Bfor GB matrices (simple driver). iconic behavior fr fr π
πΈ FUNCTION/SUBROUTINE DOCUMENTATION
π«Ά subroutine DGBSV
here's the full signature, character for character, don't @ me:
subroutine DGBSV (integer n, integer kl, integer ku, integer nrhs, double
precision, dimension( ldab, * ) ab, integer ldab, integer, dimension( *
) ipiv, double precision, dimension( ldb, * ) b, integer ldb, integer
info)
DGBSV computes the solution to system of linear equations A * X = B for GB matrices (simple driver). slay. π
π Purpose:
!>
!> DGBSV computes the solution to a real system of linear equations
!> A * X = B, where A is a band matrix of order N with KL subdiagonals
!> and KU superdiagonals, and X and B are N-by-NRHS matrices.
!>
!> The LU decomposition with partial pivoting and row interchanges is
!> used to factor A as A = L * U, where L is a product of permutation
!> and unit lower triangular matrices with KL subdiagonals, and U is
!> upper triangular with KL+KU superdiagonals. The factored form of A
!> is then used to solve the system of equations A * X = B.
!>
π Parameters
NβN is INTEGER. it's the number of linear equations, aka the order of the matrixA. andN >= 0, periodt. β¨KLβKL is INTEGER. the number of subdiagonals within the band ofA.KL >= 0, bestie. πKUβKU is INTEGER. the number of superdiagonals within the band ofA.KU >= 0. π«NRHSβNRHS is INTEGER. the number of right hand sides, i.e. the number of columns of the matrixB.NRHS >= 0, don't forget. πΈABβAB is DOUBLE PRECISION array, dimension (LDAB,N). okay so on entry, this is the matrixAin band storage, in rowsKL+1to2*KL+KU+1; rows1toKLof the array need not be set. the j-th column ofAis stored in the j-th column of the arrayABlike this:
AB(KL+KU+1+i-j,j) = A(i,j) for max(1,j-KU)<=i<=min(N,j+KL)
on exit, it's got the 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, iykyk. π₯
LDABβLDAB is INTEGER. the leading dimension of the arrayAB.LDAB >= 2*KL+KU+1, non-negotiable. πIPIVβIPIV is INTEGER array, dimension (N). the pivot indices that define the permutation matrixP; rowiof the matrix was interchanged with rowIPIV(i). π¦BβB is DOUBLE PRECISION array, dimension (LDB,NRHS). on entry, theN-by-NRHSright hand side matrixB. on exit, ifINFO = 0, theN-by-NRHSsolution matrixX. main character energy honestly. β¨LDBβLDB is INTEGER. the leading dimension of the arrayB.LDB >= max(1,N), okurrr. πINFOβINFO is INTEGER. the vibe check, and it goes:= 0: successful exit π< 0: ifINFO = -i, the i-th argument had an illegal value π> 0: ifINFO = i,U(i,i)is exactly zero. the factorization has been completed, but the factorUis exactly singular, and the solution has not been computed. not me crying π
π 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.
!>
so * elements? not used by the routine, ignore them bestie. the + elements? they don't need to be set on entry but the routine needs them to store elements of U because of fill-in resulting from the row interchanges. important. π«Ά
β DEFINITION AT LINE 161
Definition at line161of filedgbsv.f. β¨
π¦ AUTHOR
Generated automatically by Doxygen for LAPACK from the source code. (yes, a robot wrote the meta-page, we love an automated king π€π)
and that's the whole thing bestie!! this page is from LAPACK, Version 3.12.0, and it's the manual page at /home/abui...RC/dgbsv.f(3) β go forth and solve those band systems, you absolute icon π
πβ¨
π¦ 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