pstrf(3)
pstrf(3) β Library Functions Manual β¨
okay so bestie, buckle up π this is pstrf from the Library Functions Manual, and it's literally the triangular factor girly with pivoting. she's giving linear algebra main character energy and we're gonna get through her together π«Ά
πΈ NAME πΈ
pstrf β triangular factor, with pivoting
β¨ SYNOPSIS β¨
the functions (yes there's a whole squad) π
subroutine cpstrf (uplo, n, a, lda, piv, rank, tol, work, info)β CPSTRF computes the Cholesky factorization with complete pivoting of complex Hermitian positive semidefinite matrix.subroutine dpstrf (uplo, n, a, lda, piv, rank, tol, work, info)β DPSTRF computes the Cholesky factorization with complete pivoting of a real symmetric positive semidefinite matrix.subroutine spstrf (uplo, n, a, lda, piv, rank, tol, work, info)β SPSTRF computes the Cholesky factorization with complete pivoting of a real symmetric positive semidefinite matrix.subroutine zpstrf (uplo, n, a, lda, piv, rank, tol, work, info)β ZPSTRF computes the Cholesky factorization with complete pivoting of a complex Hermitian positive semidefinite matrix.
π¦ DETAILED DESCRIPTION π¦
bestie this is the overview zone β the actual deets live in the Function Documentation section right below, where each of the four routines gets her own moment π
π FUNCTION DOCUMENTATION π
π subroutine cpstrf
subroutine cpstrf (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)
CPSTRF computes the Cholesky factorization with complete pivoting of complex Hermitian positive semidefinite matrix. iconic behavior fr fr π₯
Purpose:
ok so here's the vibe:
!>
!> CPSTRF 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 3 BLAS.
!>
π real talk: this algorithm does not attempt to check that A is positive semidefinite β she's trusting you, bestie, so don't embarrass her.
Parameters
UPLO
!> 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
!>
N
!> N is INTEGER
!> The order of the matrix A. N >= 0.
!>
A
!> 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.
!>
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,N).
!>
PIV
!> PIV is INTEGER array, dimension (N)
!> PIV is such that the nonzero entries are P( PIV(K), K ) = 1.
!>
RANK
!> RANK is INTEGER
!> The rank of A given by the number of steps the algorithm
!> completed.
!>
TOL
!> 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.
!>
WORK
!> WORK is REAL array, dimension (2*N)
!> Work space.
!>
INFO
!> 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.
!>
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 141 of file cpstrf.f.
π subroutine dpstrf
subroutine dpstrf (character uplo, integer n, double precision, dimension(
lda, * ) a, integer lda, integer, dimension( n ) piv, integer rank,
double precision tol, double precision, dimension( 2*n ) work, integer
info)
DPSTRF computes the Cholesky factorization with complete pivoting of a real symmetric positive semidefinite matrix. the double precision girlie said "anything you can do I can do better" π
Purpose:
!>
!> DPSTRF computes the Cholesky factorization with complete
!> pivoting of a real symmetric positive semidefinite matrix A.
!>
!> The factorization has the form
!> P**T * A * P = U**T * U , if UPLO = 'U',
!> P**T * A * P = L * L**T, 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 3 BLAS.
!>
π again, no cap: this algorithm does not attempt to check that A is positive semidefinite.
Parameters
UPLO
!> 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
!>
N
!> N is INTEGER
!> The order of the matrix A. N >= 0.
!>
A
!> A is DOUBLE PRECISION 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.
!>
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,N).
!>
PIV
!> PIV is INTEGER array, dimension (N)
!> PIV is such that the nonzero entries are P( PIV(K), K ) = 1.
!>
RANK
!> RANK is INTEGER
!> The rank of A given by the number of steps the algorithm
!> completed.
!>
TOL
!> TOL is DOUBLE PRECISION
!> 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.
!>
WORK
!> WORK is DOUBLE PRECISION array, dimension (2*N)
!> Work space.
!>
INFO
!> 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.
!>
Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 141 of file dpstrf.f.
π§ subroutine spstrf
subroutine spstrf (character uplo, integer n, real, dimension( lda, * ) a,
integer lda, integer, dimension( n ) piv, integer rank, real tol, real,
dimension( 2*n ) work, integer info)
SPSTRF computes the Cholesky factorization with complete pivoting of a real symmetric positive semidefinite matrix. single precision but make it fashion πΈ
Purpose:
!>
!> SPSTRF computes the Cholesky factorization with complete
!> pivoting of a real symmetric positive semidefinite matrix A.
!>
!> The factorization has the form
!> P**T * A * P = U**T * U , if UPLO = 'U',
!> P**T * A * P = L * L**T, 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 3 BLAS.
!>
π say it with me one more time: this algorithm does not attempt to check that A is positive semidefinite.
Parameters
UPLO
!> 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
!>
N
!> N is INTEGER
!> The order of the matrix A. N >= 0.
!>
A
!> A is REAL 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.
!>
LDA
!> LDA is INTEGER
!> The leading dimension of the array A. LDA >= max(1,N).
!>
PIV
!> PIV is INTEGER array, dimension (N)
!> PIV is such that the nonzero entries are P( PIV(K), K ) = 1.
!>
RANK
!> RANK is INTEGER
!> The rank of A given by the number of steps the algorithm
!> completed.
!>
TOL
!> 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.
!>
WORK
!> WORK is REAL array, dimension (2*N)
!> Work space.
!>
INFO
okay so INFO for spstrf is about to be a whole thing and we're picking it up in part 2 bestie π
β¨ hold that thought π«Ά
INFOβ it's anINTEGER, and honestly it's the group-chat read receipt of the whole call π Here's the decode:< 0β ifINFO = -K, then the K-th argument had an illegal value. Rude of it, honestly.= 0β algorithm completed successfully. slay β¨> 0β the matrix A is 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. iykyk π
π Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 140 of file spstrf.f.
π¦ subroutine zpstrf
okay bestie, this is the complex one β literally. Same energy, but now we're in COMPLEX*16 territory π
subroutine zpstrf (character uplo, integer n, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( n ) piv, integer rank, double precision tol, double precision, dimension( 2*n ) work, integer info)
ZPSTRF computes the Cholesky factorization with complete pivoting of a complex Hermitian positive semidefinite matrix. π
β¨ Purpose
ZPSTRF 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. Like, it's not gonna double-check your work for you, bestie. This version of the algorithm calls level 3 BLAS. π₯
π Parameters
UPLOβ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
NβN is INTEGER. The order of the matrix A.N >= 0. πAβA is COMPLEX*16 array, dimension (LDA,N). On entry, the symmetric matrix A. IfUPLO = '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. IfUPLO = '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. β¨
LDAβLDA is INTEGER. The leading dimension of the array A.LDA >= max(1,N). πPIVβPIV is INTEGER array, dimension (N).PIVis such that the nonzero entries areP( PIV(K), K ) = 1. the way it just *indexes*β¦ πRANKβRANK is INTEGER. The rank of A given by the number of steps the algorithm completed. she really said "I'll get as far as I get" πTOLβTOL is DOUBLE PRECISION. User defined tolerance. IfTOL < 0, thenN*U*MAX( A(K,K) )will be used. The algorithm terminates at the (K-1)st step if thepivot <= TOL. βοΈWORKβWORK is DOUBLE PRECISION array, dimension (2*N). Work space. (yes,DOUBLE PRECISIONeven in the complex routine β that's literally what it says, don't come for me π«Ά)INFOβINFO is INTEGER< 0: IfINFO = -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 inRANK, or is not positive semidefinite. See Section 7 of LAPACK Working Note #161 for further information. π
πΈ Author
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 141 of file zpstrf.f.
π Author
Generated automatically by Doxygen for LAPACK from the source code. no humans were harmed in the making of this manpage π€π
and that's a wrap on pstrf(3) bestie!! πβ¨ this whole iconic little page is from LAPACK, Version 3.12.0 β it lives at pstrf(3) in the manual, and it was generated for you with love (and Doxygen) from the LAPACK source code. go forth and pivot completely, my main character π¦ππ
π¦ 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