![]() |
LAPACK
3.9.0
LAPACK: Linear Algebra PACKage
|
| 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.
Download SPSTRF + dependencies [TGZ] [ZIP] [TXT]
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. | [in] | 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 |
| [in] | N | N is INTEGER
The order of the matrix A. N >= 0. |
| [in,out] | 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. |
| [in] | LDA | LDA is INTEGER
The leading dimension of the array A. LDA >= max(1,N). |
| [out] | PIV | PIV is INTEGER array, dimension (N)
PIV is such that the nonzero entries are P( PIV(K), K ) = 1. |
| [out] | RANK | RANK is INTEGER
The rank of A given by the number of steps the algorithm
completed. |
| [in] | 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. |
| [out] | WORK | WORK is REAL array, dimension (2*N)
Work space. |
| [out] | 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. |
Definition at line 143 of file spstrf.f.