version 1.4, 2020/05/21 21:46:07
|
version 1.5, 2023/08/07 08:39:29
|
Line 239
|
Line 239
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date December 2016 |
|
* |
|
*> \ingroup complex16HEcomputational |
*> \ingroup complex16HEcomputational |
* |
* |
*> \par Contributors: |
*> \par Contributors: |
Line 262
|
Line 260
|
SUBROUTINE ZLAHEF_RK( UPLO, N, NB, KB, A, LDA, E, IPIV, W, LDW, |
SUBROUTINE ZLAHEF_RK( UPLO, N, NB, KB, A, LDA, E, IPIV, W, LDW, |
$ INFO ) |
$ INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.7.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..-- |
* December 2016 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER UPLO |
CHARACTER UPLO |
Line 463
|
Line 460
|
* |
* |
* 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 602
|
Line 599
|
* 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 915
|
Line 912
|
* |
* |
* 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 1045
|
Line 1042
|
* 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 |