potrf2(3)
πΈ potrf2 πΈ
okay bestie, so you've stumbled into potrf2(3) β that's the potrf2 page from the Library Functions Manual, and it is literally the landing page for a whole lil family of routines. it's giving "index card for a friend group" energy π
fr fr, the NAME line says exactly this and nothing more:
potrf2 - potrf2: triangular factor panel, recursive?
yes, the question mark is canon. don't come for me, i didn't write it π«Ά
β¨ SYNOPSIS β¨
π Functions π
bestie there are four of these and they're all recursive subroutines β every single one of them. same argument lineup, four different precision/flavor combos. here's the full roster, no skips, no "and friends":
recursive subroutine cpotrf2 (uplo, n, a, lda, info)β this one's tagged CPOTRF2 β¨recursive subroutine dpotrf2 (uplo, n, a, lda, info)β this one's tagged DPOTRF2... sorry, DPOTRF2 π¦recursive subroutine spotrf2 (uplo, n, a, lda, info)β this one's tagged SPOTRF2 πΈrecursive subroutine zpotrf2 (uplo, n, a, lda, info)β and this one's tagged ZPOTRF2 π
so yeah, every one of them eats the same five things in the same order β uplo, n, a, lda, info β and every one of them is declared recursive, which is the whole personality of this page honestly. it's giving "i contain multitudes" π
ngl the c / d / s / z prefix pattern is the classic BLAS/LAPACK thing where each letter is a different data type, and the tag next to each line is just the uppercase routine name. iykyk π
β Detailed Description β
so this is the section where the actual explanation usually lives, andβ¦ it's empty. like, genuinely blank. no prose, no notes, no lore. just the heading sitting there with main character energy and zero lines underneath it π
we're literally told nothing here beyond what's already above β no parameter breakdowns, no return values explained, no caveats, no examples. so bestie, do not go making up what uplo does from this page alone. the page doesn't say. periodt. π
heads up: this is only part 1 of the page β more is coming, so don't close the tab yet ππ
π¦ CPOTRF2
recursive subroutine cpotrf2 (character uplo, integer n, complex, dimension( lda, * ) a, integer lda, integer info)
π Purpose
okay so bestie, CPOTRF2 computes the Cholesky factorization of a Hermitian positive definite matrix A using the recursive algorithm π
The factorization has the form
A = U**H * U, if UPLO = 'U', or
A = L * L**H, if UPLO = 'L',
where U is an upper triangular matrix and L is lower triangular β¨
This is the recursive version of the algorithm β it's giving divide-and-conquer main character energy π It divides the matrix into four submatrices:
[ A11 | A12 ] where A11 is n1 by n1 and A22 is n2 by n2
A = [ -----|----- ] with n1 = n/2
[ A21 | A22 ] n2 = n-n1
The subroutine calls itself to factor A11. Update and scale A21 or A12, update A22 then calls itself to factor A22 π
πΈ Parameters
UPLOβCHARACTER*1, fr fr tell it which triangle you're handing over:= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored.
NβINTEGER, the order of the matrixA.N >= 0. β¨AβCOMPLEX array, dimension (LDA,N)β the whole vibe, lowkey:- On entry, the Hermitian matrix
A. IfUPLO = 'U', the leadingN-by-Nupper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leadingN-by-Nlower triangular part ofAcontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced. π«Ά - On exit, if
INFO = 0, the factorUorLfrom the Cholesky factorizationA = U**H*UorA = L*L**H. π
- On entry, the Hermitian matrix
LDAβINTEGER, the leading dimension of the arrayA.LDA >= max(1,N). No cap, just rules πINFOβINTEGER, the receipts:= 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 π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 105 of file cpotrf2.f.
π¦ DPOTRF2
recursive subroutine dpotrf2 (character uplo, integer n, double precision, dimension( lda, * ) a, integer lda, integer info)
π Purpose
DPOTRF2 computes the Cholesky factorization of a real symmetric positive definite matrix A using the recursive algorithm π yes, the real one, same iconic energy, no imaginary parts invited π
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 β¨ (note: **T, not **H β we're keeping it real over here π)
This is the recursive version of the algorithm. It divides the matrix into four submatrices:
[ A11 | A12 ] where A11 is n1 by n1 and A22 is n2 by n2
A = [ -----|----- ] with n1 = n/2
[ A21 | A22 ] n2 = n-n1
The subroutine calls itself to factor A11. Update and scale A21 or A12, update A22 then calls itself to factor A22 π§ it literally recurses, it ate and left no crumbs π
πΈ Parameters
UPLOβCHARACTER*1, pick your fighter:= 'U': Upper triangle ofAis stored;= 'L': Lower triangle ofAis stored.
NβINTEGER, the order of the matrixA.N >= 0. πΈAβDOUBLE PRECISION array, dimension (LDA,N):- On entry, the symmetric matrix
A. IfUPLO = 'U', the leadingN-by-Nupper triangular part ofAcontains the upper triangular part of the matrixA, and the strictly lower triangular part ofAis not referenced. IfUPLO = 'L', the leadingN-by-Nlower triangular part ofAcontains the lower triangular part of the matrixA, and the strictly upper triangular part ofAis not referenced. π«Ά - On exit, if
INFO = 0, the factorUorLfrom the Cholesky factorizationA = U**T*UorA = L*L**T. π
- On entry, the symmetric matrix
LDAβINTEGER, the leading dimension of the arrayA.LDA >= max(1,N). βINFOβINTEGER, aka the tea:= 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 π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 105 of file dpotrf2.f.
π Author π
okay so real talk: nobody hand-wrote this bad boy π it was Generated automatically by Doxygen for LAPACK from the source code β like, the docs literally write themselves, main character energy fr fr π
so yeah, no mysterious lone genius to thank here, just Doxygen doing its little automated thing for LAPACK, pulling straight from the source code β¨ which honestly? iconic. the source is the moment, the docs just follow π«Ά
and that's a wrap bestie!! π this whole page comes to you courtesy of LAPACK, Version 3.12.0, and it's filed under potrf2(3) β so if you ever forget where you read it, that's your girl π go forth and factor those matrices, you absolute legend π¦βπ
π¦ 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