version 1.13, 2012/12/14 14:22:55
|
version 1.14, 2014/01/27 09:24:37
|
Line 90
|
Line 90
|
*> \verbatim |
*> \verbatim |
*> IPIV is INTEGER array, dimension (N) |
*> IPIV is INTEGER array, dimension (N) |
*> Details of the interchanges and the block structure of D. |
*> Details of the interchanges and the block structure of D. |
*> If IPIV(k) > 0, then rows and columns k and IPIV(k) were |
*> |
*> interchanged and D(k,k) is a 1-by-1 diagonal block. |
*> If UPLO = 'U': |
*> If UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0, then rows and |
*> If IPIV(k) > 0, then rows and columns k and IPIV(k) were |
*> columns k-1 and -IPIV(k) were interchanged and D(k-1:k,k-1:k) |
*> interchanged and D(k,k) is a 1-by-1 diagonal block. |
*> is a 2-by-2 diagonal block. If UPLO = 'L' and IPIV(k) = |
*> |
*> IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k) were |
*> If IPIV(k) = IPIV(k-1) < 0, then rows and columns |
*> interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal block. |
*> k-1 and -IPIV(k) were interchanged and D(k-1:k,k-1:k) |
|
*> is a 2-by-2 diagonal block. |
|
*> |
|
*> If UPLO = 'L': |
|
*> If IPIV(k) > 0, then rows and columns k and IPIV(k) were |
|
*> interchanged and D(k,k) is a 1-by-1 diagonal block. |
|
*> |
|
*> If IPIV(k) = IPIV(k+1) < 0, then rows and columns |
|
*> k+1 and -IPIV(k) were interchanged and D(k:k+1,k:k+1) |
|
*> is a 2-by-2 diagonal block. |
*> \endverbatim |
*> \endverbatim |
*> |
*> |
*> \param[out] INFO |
*> \param[out] INFO |
Line 118
|
Line 127
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date September 2012 |
*> \date November 2013 |
* |
* |
*> \ingroup complex16SYcomputational |
*> \ingroup complex16SYcomputational |
* |
* |
Line 182
|
Line 191
|
* ===================================================================== |
* ===================================================================== |
SUBROUTINE ZSYTF2( UPLO, N, A, LDA, IPIV, INFO ) |
SUBROUTINE ZSYTF2( UPLO, N, A, LDA, IPIV, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.4.2) -- |
* -- LAPACK computational routine (version 3.5.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..-- |
* September 2012 |
* November 2013 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER UPLO |
CHARACTER UPLO |
Line 273
|
Line 282
|
ABSAKK = CABS1( A( K, K ) ) |
ABSAKK = CABS1( A( K, K ) ) |
* |
* |
* IMAX is the row-index of the largest off-diagonal element in |
* IMAX is the row-index of the largest off-diagonal element in |
* column K, and COLMAX is its absolute value |
* column K, and COLMAX is its absolute value. |
|
* Determine both COLMAX and IMAX. |
* |
* |
IF( K.GT.1 ) THEN |
IF( K.GT.1 ) THEN |
IMAX = IZAMAX( K-1, A( 1, K ), 1 ) |
IMAX = IZAMAX( K-1, A( 1, K ), 1 ) |
Line 284
|
Line 294
|
* |
* |
IF( MAX( ABSAKK, COLMAX ).EQ.ZERO .OR. DISNAN(ABSAKK) ) THEN |
IF( MAX( ABSAKK, COLMAX ).EQ.ZERO .OR. DISNAN(ABSAKK) ) THEN |
* |
* |
* Column K is zero or NaN: set INFO and continue |
* Column K is zero or underflow, or contains a NaN: |
|
* set INFO and continue |
* |
* |
IF( INFO.EQ.0 ) |
IF( INFO.EQ.0 ) |
$ INFO = K |
$ INFO = K |
Line 441
|
Line 452
|
ABSAKK = CABS1( A( K, K ) ) |
ABSAKK = CABS1( A( K, K ) ) |
* |
* |
* IMAX is the row-index of the largest off-diagonal element in |
* IMAX is the row-index of the largest off-diagonal element in |
* column K, and COLMAX is its absolute value |
* column K, and COLMAX is its absolute value. |
|
* Determine both COLMAX and IMAX. |
* |
* |
IF( K.LT.N ) THEN |
IF( K.LT.N ) THEN |
IMAX = K + IZAMAX( N-K, A( K+1, K ), 1 ) |
IMAX = K + IZAMAX( N-K, A( K+1, K ), 1 ) |
Line 452
|
Line 464
|
* |
* |
IF( MAX( ABSAKK, COLMAX ).EQ.ZERO .OR. DISNAN(ABSAKK) ) THEN |
IF( MAX( ABSAKK, COLMAX ).EQ.ZERO .OR. DISNAN(ABSAKK) ) THEN |
* |
* |
* Column K is zero or NaN: set INFO and continue |
* Column K is zero or underflow, or contains a NaN: |
|
* set INFO and continue |
* |
* |
IF( INFO.EQ.0 ) |
IF( INFO.EQ.0 ) |
$ INFO = K |
$ INFO = K |