version 1.10, 2017/06/17 11:06:49
|
version 1.13, 2023/08/07 08:39:25
|
Line 113
|
Line 113
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date December 2016 |
|
* |
|
*> \ingroup complex16HEcomputational |
*> \ingroup complex16HEcomputational |
* |
* |
* ===================================================================== |
* ===================================================================== |
SUBROUTINE ZHETRI2X( UPLO, N, A, LDA, IPIV, WORK, NB, INFO ) |
SUBROUTINE ZHETRI2X( UPLO, N, A, LDA, IPIV, WORK, NB, 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 137
|
Line 134
|
* ===================================================================== |
* ===================================================================== |
* |
* |
* .. Parameters .. |
* .. Parameters .. |
REAL ONE |
DOUBLE PRECISION ONE |
COMPLEX*16 CONE, ZERO |
COMPLEX*16 CONE, ZERO |
PARAMETER ( ONE = 1.0D+0, |
PARAMETER ( ONE = 1.0D+0, |
$ CONE = ( 1.0D+0, 0.0D+0 ), |
$ CONE = ( 1.0D+0, 0.0D+0 ), |
Line 242
|
Line 239
|
ELSE |
ELSE |
* 2 x 2 diagonal NNB |
* 2 x 2 diagonal NNB |
T = ABS ( WORK(K+1,1) ) |
T = ABS ( WORK(K+1,1) ) |
AK = REAL ( A( K, K ) ) / T |
AK = DBLE ( A( K, K ) ) / T |
AKP1 = REAL ( A( K+1, K+1 ) ) / T |
AKP1 = DBLE ( A( K+1, K+1 ) ) / T |
AKKP1 = WORK(K+1,1) / T |
AKKP1 = WORK(K+1,1) / T |
D = T*( AK*AKP1-ONE ) |
D = T*( AK*AKP1-ONE ) |
WORK(K,INVD) = AKP1 / D |
WORK(K,INVD) = AKP1 / D |
Line 419
|
Line 416
|
ELSE |
ELSE |
* 2 x 2 diagonal NNB |
* 2 x 2 diagonal NNB |
T = ABS ( WORK(K-1,1) ) |
T = ABS ( WORK(K-1,1) ) |
AK = REAL ( A( K-1, K-1 ) ) / T |
AK = DBLE ( A( K-1, K-1 ) ) / T |
AKP1 = REAL ( A( K, K ) ) / T |
AKP1 = DBLE ( A( K, K ) ) / T |
AKKP1 = WORK(K-1,1) / T |
AKKP1 = WORK(K-1,1) / T |
D = T*( AK*AKP1-ONE ) |
D = T*( AK*AKP1-ONE ) |
WORK(K-1,INVD) = AKP1 / D |
WORK(K-1,INVD) = AKP1 / D |