version 1.5, 2018/05/29 07:18:25
|
version 1.6, 2023/08/07 08:39:29
|
Line 162
|
Line 162
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date November 2013 |
|
* |
|
*> \ingroup complex16HEcomputational |
*> \ingroup complex16HEcomputational |
* |
* |
*> \par Contributors: |
*> \par Contributors: |
Line 184
|
Line 182
|
SUBROUTINE ZLAHEF_ROOK( UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, |
SUBROUTINE ZLAHEF_ROOK( UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, |
$ INFO ) |
$ INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.5.0) -- |
* -- LAPACK computational routine -- |
* -- 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 2013 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER UPLO |
CHARACTER UPLO |
Line 373
|
Line 370
|
* |
* |
* Case(2) |
* Case(2) |
* Equivalent to testing for |
* Equivalent to testing for |
* ABS( REAL( W( IMAX,KW-1 ) ) ).GE.ALPHA*ROWMAX |
* ABS( DBLE( W( IMAX,KW-1 ) ) ).GE.ALPHA*ROWMAX |
* (used to handle NaN and Inf) |
* (used to handle NaN and Inf) |
* |
* |
IF( .NOT.( ABS( DBLE( W( IMAX,KW-1 ) ) ) |
IF( .NOT.( ABS( DBLE( W( IMAX,KW-1 ) ) ) |
Line 512
|
Line 509
|
* A(1:k-1,k) := U(1:k-1,k) = W(1:k-1,kw)/D(k,k) |
* A(1:k-1,k) := U(1:k-1,k) = W(1:k-1,kw)/D(k,k) |
* |
* |
* (NOTE: No need to use for Hermitian matrix |
* (NOTE: No need to use for Hermitian matrix |
* A( K, K ) = REAL( W( K, K) ) to separately copy diagonal |
* A( K, K ) = DBLE( W( K, K) ) to separately copy diagonal |
* element D(k,k) from W (potentially saves only one load)) |
* element D(k,k) from W (potentially saves only one load)) |
CALL ZCOPY( K, W( 1, KW ), 1, A( 1, K ), 1 ) |
CALL ZCOPY( K, W( 1, KW ), 1, A( 1, K ), 1 ) |
IF( K.GT.1 ) THEN |
IF( K.GT.1 ) THEN |
Line 836
|
Line 833
|
* |
* |
* Case(2) |
* Case(2) |
* Equivalent to testing for |
* Equivalent to testing for |
* ABS( REAL( W( IMAX,K+1 ) ) ).GE.ALPHA*ROWMAX |
* ABS( DBLE( W( IMAX,K+1 ) ) ).GE.ALPHA*ROWMAX |
* (used to handle NaN and Inf) |
* (used to handle NaN and Inf) |
* |
* |
IF( .NOT.( ABS( DBLE( W( IMAX,K+1 ) ) ) |
IF( .NOT.( ABS( DBLE( W( IMAX,K+1 ) ) ) |
Line 966
|
Line 963
|
* A(k+1:N,k) := L(k+1:N,k) = W(k+1:N,k)/D(k,k) |
* A(k+1:N,k) := L(k+1:N,k) = W(k+1:N,k)/D(k,k) |
* |
* |
* (NOTE: No need to use for Hermitian matrix |
* (NOTE: No need to use for Hermitian matrix |
* A( K, K ) = REAL( W( K, K) ) to separately copy diagonal |
* A( K, K ) = DBLE( W( K, K) ) to separately copy diagonal |
* element D(k,k) from W (potentially saves only one load)) |
* element D(k,k) from W (potentially saves only one load)) |
CALL ZCOPY( N-K+1, W( K, K ), 1, A( K, K ), 1 ) |
CALL ZCOPY( N-K+1, W( K, K ), 1, A( K, K ), 1 ) |
IF( K.LT.N ) THEN |
IF( K.LT.N ) THEN |