LAPACK
3.4.2
LAPACK: Linear Algebra PACKage

Go to the source code of this file.
Functions/Subroutines  
subroutine  dpstrf (UPLO, N, A, LDA, PIV, RANK, TOL, WORK, INFO) 
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
Download DPSTRF + dependencies [TGZ] [ZIP] [TXT]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.
[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 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. 
[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 DOUBLE PRECISION User defined tolerance. If TOL < 0, then N*U*MAX( A(K,K) ) will be used. The algorithm terminates at the (K1)st step if the pivot <= TOL. 
[out]  WORK  WORK is DOUBLE PRECISION array, dimension (2*N) Work space. 
[out]  INFO  INFO is INTEGER < 0: If INFO = K, the Kth 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 indefinite. See Section 7 of LAPACK Working Note #161 for further information. 
Definition at line 141 of file dpstrf.f.