/home/abui...RC/sppsv.f(3)
π /home/abui...RC/sppsv.f(3) β LAPACK Library Functions Manual, section 3
okay so bestie, welcome to the glow-up of one (1) very specific Fortran file. this is a Library Functions Manual page for section <pink>3</pink> β the land of library calls β and the star of the show is a little routine called SPPSV. she's not famous, she's not flashy, but she gets the job done. let's go π
β¨ NAME β¨
/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/sppsv.f
yeah. that's the whole path. it's giving "full government name at the DMV" energy but honestly? respect. it's the source file, babe, and that's the whole identity πββοΈ
π¦ SYNOPSIS π¦
Functions/Subroutines
subroutine SPPSV (uplo, n, nrhs, ap, b, ldb, info)
okay so per the synopsis blurb: SPPSV computes the solution to system of linear equations A * X = B for OTHER matrices. yes "OTHER matrices" is literally what it says and yes we're keeping it verbatim, don't come for me π
π Function/Subroutine Documentation π
subroutine SPPSV (character uplo, integer n, integer nrhs, real, dimension( * ) ap, real, dimension( ldb, * ) b, integer ldb, integer info)
here's the full signature, character for character, because we do not play with types in this house. and the headline again: SPPSV computes the solution to system of linear equations A * X = B for OTHER matrices. iconic, consistent, on brand β¨
πΈ Purpose πΈ
so the actual purpose, straight from the source comments:
SPPSV computes the solution to a real system of linear equations A * X = B, where A is an N-by-N symmetric positive definite matrix stored in packed format and X and B are N-by-NRHS matrices. The Cholesky decomposition is used to factor A as 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 a lower triangular matrix. The factored form of A is then used to solve the system of equations A * X = B.
translation bestie: she factors your matrix with Cholesky β upper U route or lower L route depending on UPLO β and then uses that factored form to actually solve A * X = B. multitasking queen π
π§ Parameters π§
UPLOβ this one's aCHARACTER*1and it's basically the "which triangle are we feeling today" flag.= 'U': the upper triangle of A is stored;= 'L': the lower triangle of A is stored. pick one, commit, slay π«ΆNβ anINTEGER, the number of linear equations, i.e. the order of the matrix A. constraint:N >= 0. zero is fine, negative is not, we don't do that here.NRHSβ anINTEGER, the number of right hand sides, i.e. the number of columns of the matrix B. constraint:NRHS >= 0. same deal, non-negative only π€APβ aREALarray of dimension(N*(N+1)/2). and okay this is the main character of the parameter list, so listen up:- On entry: the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. the j-th column of A is stored in the array
APas follows:- if
UPLO = 'U',AP(i + (j-1)*j/2) = A(i,j)for1<=i<=j; - if
UPLO = 'L',AP(i + (j-1)*(2n-j)/2) = A(i,j)forj<=i<=n.
- if
- See below for further details (and bestie, we do go below, the receipts are in Further Details π).
- On exit, if
INFO = 0, the factor U or L from the Cholesky factorizationA = U**T*UorA = L*L**T, in the same storage format as A. she replaces what she came with. no notes.
- On entry: the upper or lower triangle of the symmetric matrix A, packed columnwise in a linear array. the j-th column of A is stored in the array
Bβ aREALarray of dimension(LDB,NRHS). On entry: the N-by-NRHS right hand side matrix B. On exit, ifINFO = 0, the N-by-NRHS solution matrix X. glow-up arc fr fr, she goes in as B and comes out as X π₯LDBβ anINTEGER, the leading dimension of the array B. constraint:LDB >= max(1,N). don't skimp on the leading dimension, it will absolutely notice πINFOβ anINTEGERand the vibes report at the end:= 0: successful exit β¨< 0: ifINFO = -i, the i-th argument had an illegal value π> 0: ifINFO = i, the leading principal minor of order i of A is not positive, so the factorization could not be completed, and the solution has not been computed π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
look at that group project actually working out. four institutions, one subroutine, no cap π«‘
β Further Details: β
okay so the packed storage scheme gets a whole illustrated example, and honestly? it ate. here it is when N = 4, UPLO = 'U':
The packed storage scheme is illustrated by the following example when N = 4, UPLO = 'U': Two-dimensional storage of the symmetric matrix A:
a11 a12 a13 a14
a22 a23 a24
a33 a34 (aij = conjg(aji))
a44
Packed storage of the upper triangle of A:
AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ]
see how she folded the triangle like a fitted sheet? that's the whole trick. (aij = conjg(aji)) stays in there too because we don't erase math notation in this house π§
π Definition π
Definition at line 143 of file sppsv.f.
π Author (the meta one) π
Generated automatically by Doxygen for LAPACK from the source code. so technically the author here is a robot who read the source and made a page, and honestly? she did that π
π sign-off π
this page is from LAPACK, Version 3.12.0, and it lives at /home/abui...RC/sppsv.f(3) β that's the source/version and path situation, all noted, all accounted for. go factor something symmetric positive definite, bestie, and remember: INFO = 0 or it's not slaying π¦β¨
π¦ 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