version 1.6, 2011/11/21 20:43:02
|
version 1.15, 2018/05/29 07:18:05
|
Line 1
|
Line 1
|
*> \brief \b DPSTRF |
*> \brief \b DPSTRF computes the Cholesky factorization with complete pivoting of a real symmetric positive semidefinite matrix. |
|
* |
* |
* |
* =========== DOCUMENTATION =========== |
* =========== DOCUMENTATION =========== |
* |
* |
* Online html documentation available at |
* Online html documentation available at |
* http://www.netlib.org/lapack/explore-html/ |
* http://www.netlib.org/lapack/explore-html/ |
* |
* |
*> \htmlonly |
*> \htmlonly |
*> Download DPSTRF + dependencies |
*> Download DPSTRF + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dpstrf.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dpstrf.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dpstrf.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dpstrf.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpstrf.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dpstrf.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE DPSTRF( UPLO, N, A, LDA, PIV, RANK, TOL, WORK, INFO ) |
* SUBROUTINE DPSTRF( UPLO, N, A, LDA, PIV, RANK, TOL, WORK, INFO ) |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
* DOUBLE PRECISION TOL |
* DOUBLE PRECISION TOL |
* INTEGER INFO, LDA, N, RANK |
* INTEGER INFO, LDA, N, RANK |
Line 29
|
Line 30
|
* DOUBLE PRECISION A( LDA, * ), WORK( 2*N ) |
* DOUBLE PRECISION A( LDA, * ), WORK( 2*N ) |
* INTEGER PIV( N ) |
* INTEGER PIV( N ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 121
|
Line 122
|
*> < 0: If INFO = -K, the K-th argument had an illegal value, |
*> < 0: If INFO = -K, the K-th argument had an illegal value, |
*> = 0: algorithm completed successfully, and |
*> = 0: algorithm completed successfully, and |
*> > 0: the matrix A is either rank deficient with computed rank |
*> > 0: the matrix A is either rank deficient with computed rank |
*> as returned in RANK, or is indefinite. See Section 7 of |
*> as returned in RANK, or is not positive semidefinite. See |
*> LAPACK Working Note #161 for further information. |
*> Section 7 of LAPACK Working Note #161 for further |
|
*> information. |
*> \endverbatim |
*> \endverbatim |
* |
* |
* Authors: |
* Authors: |
* ======== |
* ======== |
* |
* |
*> \author Univ. of Tennessee |
*> \author Univ. of Tennessee |
*> \author Univ. of California Berkeley |
*> \author Univ. of California Berkeley |
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date November 2011 |
*> \date December 2016 |
* |
* |
*> \ingroup doubleOTHERcomputational |
*> \ingroup doubleOTHERcomputational |
* |
* |
* ===================================================================== |
* ===================================================================== |
SUBROUTINE DPSTRF( UPLO, N, A, LDA, PIV, RANK, TOL, WORK, INFO ) |
SUBROUTINE DPSTRF( UPLO, N, A, LDA, PIV, RANK, TOL, WORK, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.4.0) -- |
* -- LAPACK computational routine (version 3.7.0) -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* November 2011 |
* December 2016 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
DOUBLE PRECISION TOL |
DOUBLE PRECISION TOL |
Line 230
|
Line 232
|
AJJ = A( PVT, PVT ) |
AJJ = A( PVT, PVT ) |
END IF |
END IF |
END DO |
END DO |
IF( AJJ.EQ.ZERO.OR.DISNAN( AJJ ) ) THEN |
IF( AJJ.LE.ZERO.OR.DISNAN( AJJ ) ) THEN |
RANK = 0 |
RANK = 0 |
INFO = 1 |
INFO = 1 |
GO TO 200 |
GO TO 200 |