diff options
author | igor175 <igor175@8a072113-8704-0410-8d35-dd094bca7971> | 2012-12-12 02:08:16 +0000 |
---|---|---|
committer | igor175 <igor175@8a072113-8704-0410-8d35-dd094bca7971> | 2012-12-12 02:08:16 +0000 |
commit | d9f63ada777008e843da65f6d74b9237141f4f1d (patch) | |
tree | e6e40825878d84f13cf74a55842d1eff99bfef31 | |
parent | 315b545f709de1ea5e9079d9f8b97caab0cc46a2 (diff) | |
download | lapack-d9f63ada777008e843da65f6d74b9237141f4f1d.tar.gz lapack-d9f63ada777008e843da65f6d74b9237141f4f1d.tar.bz2 lapack-d9f63ada777008e843da65f6d74b9237141f4f1d.zip |
Updated comments in (s,d,c,z)sytf2.f and (c,z)hetf2.f
-rw-r--r-- | SRC/chetf2.f | 35 | ||||
-rw-r--r-- | SRC/csytf2.f | 35 | ||||
-rw-r--r-- | SRC/dsytf2.f | 35 | ||||
-rw-r--r-- | SRC/ssytf2.f | 35 | ||||
-rw-r--r-- | SRC/zhetf2.f | 65 | ||||
-rw-r--r-- | SRC/zsytf2.f | 35 |
6 files changed, 159 insertions, 81 deletions
diff --git a/SRC/chetf2.f b/SRC/chetf2.f index 101bc1ee..27295bc7 100644 --- a/SRC/chetf2.f +++ b/SRC/chetf2.f @@ -90,13 +90,22 @@ *> \verbatim *> IPIV is INTEGER array, dimension (N) *> 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' and IPIV(k) = IPIV(k-1) < 0, then rows and -*> columns 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' and 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. +*> +*> If UPLO = 'U': +*> 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-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 *> *> \param[out] INFO @@ -268,7 +277,8 @@ ABSAKK = ABS( REAL( A( K, K ) ) ) * * 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 IMAX = ICAMAX( K-1, A( 1, K ), 1 ) @@ -279,7 +289,8 @@ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. SISNAN(ABSAKK) ) THEN * -* Column K is zero or contains a NaN: set INFO and continue +* Column K is or underflow, or contains a NaN: +* set INFO and continue * IF( INFO.EQ.0 ) $ INFO = K @@ -450,7 +461,8 @@ ABSAKK = ABS( REAL( A( K, K ) ) ) * * 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 IMAX = K + ICAMAX( N-K, A( K+1, K ), 1 ) @@ -461,7 +473,8 @@ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. SISNAN(ABSAKK) ) THEN * -* Column K is zero or contains a NaN: set INFO and continue +* Column K is zero or underflow, contains a NaN: +* set INFO and continue * IF( INFO.EQ.0 ) $ INFO = K diff --git a/SRC/csytf2.f b/SRC/csytf2.f index c1889f12..b779497d 100644 --- a/SRC/csytf2.f +++ b/SRC/csytf2.f @@ -90,13 +90,22 @@ *> \verbatim *> IPIV is INTEGER array, dimension (N) *> 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' and IPIV(k) = IPIV(k-1) < 0, then rows and -*> columns 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' and 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. +*> +*> If UPLO = 'U': +*> 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-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 *> *> \param[out] INFO @@ -273,7 +282,8 @@ ABSAKK = CABS1( A( K, K ) ) * * 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 IMAX = ICAMAX( K-1, A( 1, K ), 1 ) @@ -284,7 +294,8 @@ * IF( MAX( ABSAKK, COLMAX ).EQ.ZERO .OR. SISNAN(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 ) $ INFO = K @@ -441,7 +452,8 @@ ABSAKK = CABS1( A( K, K ) ) * * 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 IMAX = K + ICAMAX( N-K, A( K+1, K ), 1 ) @@ -452,7 +464,8 @@ * IF( MAX( ABSAKK, COLMAX ).EQ.ZERO .OR. SISNAN(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 ) $ INFO = K diff --git a/SRC/dsytf2.f b/SRC/dsytf2.f index 23d8889d..3a90da85 100644 --- a/SRC/dsytf2.f +++ b/SRC/dsytf2.f @@ -90,13 +90,22 @@ *> \verbatim *> IPIV is INTEGER array, dimension (N) *> 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' and IPIV(k) = IPIV(k-1) < 0, then rows and -*> columns 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' and 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. +*> +*> If UPLO = 'U': +*> 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-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 *> *> \param[out] INFO @@ -268,7 +277,8 @@ ABSAKK = ABS( A( K, K ) ) * * 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 IMAX = IDAMAX( K-1, A( 1, K ), 1 ) @@ -279,7 +289,8 @@ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. DISNAN(ABSAKK) ) THEN * -* Column K is zero or contains a NaN: set INFO and continue +* Column K is zero or underflow, or contains a NaN: +* set INFO and continue * IF( INFO.EQ.0 ) $ INFO = K @@ -436,7 +447,8 @@ ABSAKK = ABS( A( K, K ) ) * * 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 IMAX = K + IDAMAX( N-K, A( K+1, K ), 1 ) @@ -447,7 +459,8 @@ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. DISNAN(ABSAKK) ) THEN * -* Column K is zero or contains a NaN: set INFO and continue +* Column K is zero or underflow, or contains a NaN: +* set INFO and continue * IF( INFO.EQ.0 ) $ INFO = K diff --git a/SRC/ssytf2.f b/SRC/ssytf2.f index 68e4dee6..689007ea 100644 --- a/SRC/ssytf2.f +++ b/SRC/ssytf2.f @@ -90,13 +90,22 @@ *> \verbatim *> IPIV is INTEGER array, dimension (N) *> 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' and IPIV(k) = IPIV(k-1) < 0, then rows and -*> columns 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' and 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. +*> +*> If UPLO = 'U': +*> 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-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 *> *> \param[out] INFO @@ -269,7 +278,8 @@ ABSAKK = ABS( A( K, K ) ) * * 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 IMAX = ISAMAX( K-1, A( 1, K ), 1 ) @@ -280,7 +290,8 @@ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. SISNAN(ABSAKK) ) THEN * -* Column K is zero or contains a NaN: set INFO and continue +* Column K is zero or underflow, or contains a NaN: +* set INFO and continue * IF( INFO.EQ.0 ) $ INFO = K @@ -437,7 +448,8 @@ ABSAKK = ABS( A( K, K ) ) * * 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 IMAX = K + ISAMAX( N-K, A( K+1, K ), 1 ) @@ -448,7 +460,8 @@ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. SISNAN(ABSAKK) ) THEN * -* Column K is zero or contains a NaN: set INFO and continue +* Column K is zero or underflow, or contains a NaN: +* set INFO and continue * IF( INFO.EQ.0 ) $ INFO = K diff --git a/SRC/zhetf2.f b/SRC/zhetf2.f index 85968c20..2fb40902 100644 --- a/SRC/zhetf2.f +++ b/SRC/zhetf2.f @@ -2,24 +2,24 @@ * * =========== DOCUMENTATION =========== * -* Online html documentation available at -* http://www.netlib.org/lapack/explore-html/ +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ * *> \htmlonly -*> Download ZHETF2 + dependencies -*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhetf2.f"> -*> [TGZ]</a> -*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhetf2.f"> -*> [ZIP]</a> -*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetf2.f"> +*> Download ZHETF2 + dependencies +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zhetf2.f"> +*> [TGZ]</a> +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zhetf2.f"> +*> [ZIP]</a> +*> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zhetf2.f"> *> [TXT]</a> -*> \endhtmlonly +*> \endhtmlonly * * Definition: * =========== * * SUBROUTINE ZHETF2( UPLO, N, A, LDA, IPIV, INFO ) -* +* * .. Scalar Arguments .. * CHARACTER UPLO * INTEGER INFO, LDA, N @@ -28,7 +28,7 @@ * INTEGER IPIV( * ) * COMPLEX*16 A( LDA, * ) * .. -* +* * *> \par Purpose: * ============= @@ -90,13 +90,22 @@ *> \verbatim *> IPIV is INTEGER array, dimension (N) *> 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' and IPIV(k) = IPIV(k-1) < 0, then rows and -*> columns 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' and 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. +*> +*> If UPLO = 'U': +*> 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-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 *> *> \param[out] INFO @@ -113,10 +122,10 @@ * Authors: * ======== * -*> \author Univ. of Tennessee -*> \author Univ. of California Berkeley -*> \author Univ. of Colorado Denver -*> \author NAG Ltd. +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. * *> \date September 2012 * @@ -273,7 +282,8 @@ ABSAKK = ABS( DBLE( A( K, K ) ) ) * * 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 IMAX = IZAMAX( K-1, A( 1, K ), 1 ) @@ -284,7 +294,8 @@ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. DISNAN(ABSAKK) ) THEN * -* Column K is zero or contains a NaN: set INFO and continue +* Column K is zero or underflow, or contains a NaN: +* set INFO and continue * IF( INFO.EQ.0 ) $ INFO = K @@ -456,7 +467,8 @@ ABSAKK = ABS( DBLE( A( K, K ) ) ) * * 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 IMAX = K + IZAMAX( N-K, A( K+1, K ), 1 ) @@ -467,7 +479,8 @@ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. DISNAN(ABSAKK) ) THEN * -* Column K is zero or contains a NaN: set INFO and continue +* Column K is zero or underflow, or contains a NaN: +* set INFO and continue * IF( INFO.EQ.0 ) $ INFO = K diff --git a/SRC/zsytf2.f b/SRC/zsytf2.f index cf604ecf..23564091 100644 --- a/SRC/zsytf2.f +++ b/SRC/zsytf2.f @@ -90,13 +90,22 @@ *> \verbatim *> IPIV is INTEGER array, dimension (N) *> 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' and IPIV(k) = IPIV(k-1) < 0, then rows and -*> columns 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' and 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. +*> +*> If UPLO = 'U': +*> 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-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 *> *> \param[out] INFO @@ -273,7 +282,8 @@ ABSAKK = CABS1( A( K, K ) ) * * 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 IMAX = IZAMAX( K-1, A( 1, K ), 1 ) @@ -284,7 +294,8 @@ * 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 ) $ INFO = K @@ -441,7 +452,8 @@ ABSAKK = CABS1( A( K, K ) ) * * 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 IMAX = K + IZAMAX( N-K, A( K+1, K ), 1 ) @@ -452,7 +464,8 @@ * 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 ) $ INFO = K |