version 1.6, 2011/11/21 20:43:19
|
version 1.15, 2017/06/17 11:07:00
|
Line 1
|
Line 1
|
*> \brief \b ZPSTF2 |
*> \brief \b ZPSTF2 computes the Cholesky factorization with complete pivoting of a complex Hermitian 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 ZPSTF2 + dependencies |
*> Download ZPSTF2 + dependencies |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zpstf2.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zpstf2.f"> |
*> [TGZ]</a> |
*> [TGZ]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zpstf2.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zpstf2.f"> |
*> [ZIP]</a> |
*> [ZIP]</a> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpstf2.f"> |
*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zpstf2.f"> |
*> [TXT]</a> |
*> [TXT]</a> |
*> \endhtmlonly |
*> \endhtmlonly |
* |
* |
* Definition: |
* Definition: |
* =========== |
* =========== |
* |
* |
* SUBROUTINE ZPSTF2( UPLO, N, A, LDA, PIV, RANK, TOL, WORK, INFO ) |
* SUBROUTINE ZPSTF2( 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 30
|
Line 30
|
* DOUBLE PRECISION WORK( 2*N ) |
* DOUBLE PRECISION WORK( 2*N ) |
* INTEGER PIV( N ) |
* INTEGER PIV( N ) |
* .. |
* .. |
* |
* |
* |
* |
*> \par Purpose: |
*> \par Purpose: |
* ============= |
* ============= |
Line 122
|
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 complex16OTHERcomputational |
*> \ingroup complex16OTHERcomputational |
* |
* |
* ===================================================================== |
* ===================================================================== |
SUBROUTINE ZPSTF2( UPLO, N, A, LDA, PIV, RANK, TOL, WORK, INFO ) |
SUBROUTINE ZPSTF2( 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 218
|
Line 219
|
110 CONTINUE |
110 CONTINUE |
PVT = MAXLOC( WORK( 1:N ), 1 ) |
PVT = MAXLOC( WORK( 1:N ), 1 ) |
AJJ = DBLE( A( PVT, PVT ) ) |
AJJ = DBLE( A( PVT, PVT ) ) |
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 |
Line 251
|
Line 252
|
DO 130 I = J, N |
DO 130 I = J, N |
* |
* |
IF( J.GT.1 ) THEN |
IF( J.GT.1 ) THEN |
WORK( I ) = WORK( I ) + |
WORK( I ) = WORK( I ) + |
$ DBLE( DCONJG( A( J-1, I ) )* |
$ DBLE( DCONJG( A( J-1, I ) )* |
$ A( J-1, I ) ) |
$ A( J-1, I ) ) |
END IF |
END IF |
Line 323
|
Line 324
|
DO 160 I = J, N |
DO 160 I = J, N |
* |
* |
IF( J.GT.1 ) THEN |
IF( J.GT.1 ) THEN |
WORK( I ) = WORK( I ) + |
WORK( I ) = WORK( I ) + |
$ DBLE( DCONJG( A( I, J-1 ) )* |
$ DBLE( DCONJG( A( I, J-1 ) )* |
$ A( I, J-1 ) ) |
$ A( I, J-1 ) ) |
END IF |
END IF |