SRC/zpstrf.f(3)

🌸 SRC/zpstrf.f(3) 🌸

okay bestie, this is the Library Functions Manual page for SRC/zpstrf.f β€” manual-name situation folded in right here instead of copied as a header line, periodt. Let’s get into the LAPACK lore πŸ’…

πŸŽ€ NAME πŸŽ€

SRC/zpstrf.f

✨ SYNOPSIS ✨

🌈 Functions/Subroutines 🌈

  • subroutine zpstrf (uplo, n, a, lda, piv, rank, tol, work, info) β€” ZPSTRF is the routine that computes the Cholesky factorization with complete pivoting of a complex Hermitian positive semidefinite matrix.

πŸ’– Function/Subroutine Documentation πŸ’–

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 A.

🎯 Purpose 🎯

okay so the factorization has this form, bestie:

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.

⚠️ Important vibe check: this algorithm does not attempt to check that A is positive semidefinite. This version of the algorithm calls level 3 BLAS.

🧸 Parameters 🧸

  • UPLO β€” CHARACTER*1. Specifies whether the upper or lower triangular part of the symmetric matrix A is stored.
    • = 'U': Upper triangular
    • = 'L': Lower triangular
  • N β€” INTEGER. The order of the matrix A. N >= 0.
  • A β€” COMPLEX*16 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 β€” INTEGER. The leading dimension of the array A. LDA >= max(1,N).
  • PIV β€” INTEGER array, dimension (N). PIV is such that the nonzero entries are P( PIV(K), K ) = 1.
  • RANK β€” INTEGER. The rank of A given by the number of steps the algorithm completed.
  • TOL β€” 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 β€” DOUBLE PRECISION array, dimension (2*N). Work space.
  • INFO β€” 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 zpstrf.f.

🫢 Author 🫢

Generated automatically by Doxygen for LAPACK from the source code.


okay bestie, that’s the entire page β€” LAPACK Version 3.12.0 Β· SRC/zpstrf.f(3) Β· that’s the footer sign-off vibe πŸŽ€βœ¨ (the footer has no date, so I’m not inventing one πŸ’€)

πŸ“¦ where this page comes from