SRC/cpstf2.f(3)
π¦ SRC/cpstf2.f β the LAPACK library functions manual, bestie edition π¦
okay so first things first: the manual name is SRC/cpstf2.f and honestly? she's a whole moment. it's a LAPACK library functions manual page and we're about to get into it π
β¨ NAME β¨
SRC/cpstf2.f β that's her. that's the file. periodt π
β¨ SYNOPSIS β¨
πΈ Functions/Subroutines πΈ
subroutine cpstf2 (uplo, n, a, lda, piv, rank, tol, work, info)β CPSTF2 computes the Cholesky factorization with complete pivoting of complex Hermitian positive semidefinite matrix. yes that's a lot of words, we'll break it down, breathe π«Ά
β¨ Function/Subroutine Documentation β¨
subroutine cpstf2 (character uplo, integer n, complex, dimension( lda, * )
a, integer lda, integer, dimension( n ) piv, integer rank, real tol,
real, dimension( 2*n ) work, integer info)
CPSTF2 computes the Cholesky factorization with complete pivoting of complex Hermitian positive semidefinite matrix. that's the whole vibe of this file ngl π
π Purpose π
fortran !> !> CPSTF2 computes the Cholesky factorization with complete !> pivoting of a complex Hermitian positive semidefinite matrix A. !> !> The factorization has the form !> P**T * A * P = U**H * U , if UPLO = 'U', !> P**T * A * P = L * L**H, if UPLO = 'L', !> where U is an upper triangular matrix and L is lower triangular, and !> P is stored as vector PIV. !> !> This algorithm does not attempt to check that A is positive !> semidefinite. This version of the algorithm calls level 2 BLAS. !>
so like, P is stored as vector PIV, U is upper triangular, L is lower triangular β all very demure, all very mindful β¨ and listen: this algorithm does not attempt to check that A is positive semidefinite β she is NOT doing that labor, do not come for her π and just so we're clear, this version of the algorithm calls level 2 BLAS, iykyk π
π Parameters π
okay this is the part where you take notes, bestie, because these all matter and nothing gets skipped π
π UPLO
fortran !> UPLO is CHARACTER*1 !> Specifies whether the upper or lower triangular part of the !> symmetric matrix A is stored. !> = 'U': Upper triangular !> = 'L': Lower triangular >
UPLO is CHARACTER*1, and she decides which triangle of the symmetric matrix A we're even storing. 'U' = upper triangular, 'L' = lower triangular. pick your fighter π
π N
fortran !> N is INTEGER !> The order of the matrix A. N >= 0. >
N is INTEGER β the order of the matrix A, and it's gotta be N >= 0. no negative orders, that's not the vibe π
π A
fortran !> A is COMPLEX array, dimension (LDA,N) !> On entry, the symmetric matrix A. If UPLO = 'U', the leading !> n by n upper triangular part of A contains the upper !> triangular part of the matrix A, and the strictly lower !> triangular part of A is not referenced. If UPLO = 'L', the !> leading n by n lower triangular part of A contains the lower !> triangular part of the matrix A, and the strictly upper !> triangular part of A is not referenced. !> !> On exit, if INFO = 0, the factor U or L from the Cholesky !> factorization as above. >
A is a COMPLEX array, dimension (LDA,N). on entry she's the symmetric matrix A β if UPLO = 'U' then the leading n by n upper triangular part of A holds the upper triangular part of the matrix A, and the strictly lower triangular part of A is not referenced (she's minding her business π). if UPLO = 'L', flip it: the leading n by n lower triangular part of A holds the lower triangular part of the matrix A, and the strictly upper triangular part of A is not referenced.
on exit, if INFO = 0, you get the factor U or L from the Cholesky factorization as above. glow up β¨
π PIV
fortran !> PIV is INTEGER array, dimension (N) !> PIV is such that the nonzero entries are P( PIV(K), K ) = 1. >
PIV is an INTEGER array, dimension (N). PIV is such that the nonzero entries are P( PIV(K), K ) = 1. that's the permutation doing her little thing, no notes π
π RANK
fortran !> RANK is INTEGER !> The rank of A given by the number of steps the algorithm !> completed. >
RANK is INTEGER β the rank of A, given by the number of steps the algorithm completed. she counts her wins fr fr π«Ά
π TOL
fortran !> TOL is REAL !> User defined tolerance. If TOL < 0, then N*U*MAX( A( K,K ) ) !> will be used. The algorithm terminates at the (K-1)st step !> if the pivot <= TOL. >
TOL is REAL β your very own user defined tolerance, main character energy. if TOL < 0, then N*U*MAX( A( K,K ) ) will be used. the algorithm terminates at the (K-1)st step if the pivot <= TOL. so like, know your limits π
π LDA
fortran !> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). >
LDA is INTEGER β the leading dimension of the array A, and LDA >= max(1,N). non-negotiable πΈ
π WORK
fortran !> WORK is REAL array, dimension (2*N) !> Work space. >
WORK is a REAL array, dimension (2*N). it's work space. she works hard so you don't have to π
π INFO
fortran !> INFO is INTEGER !> < 0: If INFO = -K, the K-th argument had an illegal value, !> = 0: algorithm completed successfully, and !> > 0: the matrix A is either rank deficient with computed rank !> as returned in RANK, or is not positive semidefinite. See !> Section 7 of LAPACK Working Note #161 for further !> information. >
INFO is INTEGER and she's the vibe check at the end:
< 0: ifINFO = -K, theK-th argument had an illegal value π= 0: algorithm completed successfully β we love a happy ending π> 0: the matrixAis either rank deficient with computed rank as returned inRANK, or is not positive semidefinite. See Section 7 of LAPACK Working Note #161 for further information. go read it, i'll wait π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
icons, all of them, no cap π
Definition at line 141 of file cpstf2.f. like, exactly there. don't @ me π
π Author π
Generated automatically by Doxygen for LAPACK from the source code. yes she was built by a robot and she still ate π₯
okay that's the whole page bestie, you're officially fluent π§ and for the cute sign-off: this was LAPACK, Version 3.12.0, on the page for SRC/cpstf2.f(3) β stan her, cite her, factorize responsibly ππΈβ¨
π¦ 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