version 1.3, 2018/05/29 06:55:23
|
version 1.6, 2023/08/07 08:39:25
|
Line 37
|
Line 37
|
*> ZHETRF_AA computes the factorization of a complex hermitian matrix A |
*> ZHETRF_AA computes the factorization of a complex hermitian matrix A |
*> using the Aasen's algorithm. The form of the factorization is |
*> using the Aasen's algorithm. The form of the factorization is |
*> |
*> |
*> A = U*T*U**H or A = L*T*L**H |
*> A = U**H*T*U or A = L*T*L**H |
*> |
*> |
*> where U (or L) is a product of permutation and unit upper (lower) |
*> where U (or L) is a product of permutation and unit upper (lower) |
*> triangular matrices, and T is a hermitian tridiagonal matrix. |
*> triangular matrices, and T is a hermitian tridiagonal matrix. |
Line 125
|
Line 125
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date November 2017 |
|
* |
|
*> \ingroup complex16HEcomputational |
*> \ingroup complex16HEcomputational |
* |
* |
* ===================================================================== |
* ===================================================================== |
SUBROUTINE ZHETRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO) |
SUBROUTINE ZHETRF_AA( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO) |
* |
* |
* -- LAPACK computational routine (version 3.8.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 2017 |
|
* |
* |
IMPLICIT NONE |
IMPLICIT NONE |
* |
* |
Line 223
|
Line 220
|
IF( UPPER ) THEN |
IF( UPPER ) THEN |
* |
* |
* ..................................................... |
* ..................................................... |
* Factorize A as L*D*L**H using the upper triangle of A |
* Factorize A as U**H*D*U using the upper triangle of A |
* ..................................................... |
* ..................................................... |
* |
* |
* copy first row A(1, 1:N) into H(1:n) (stored in WORK(1:N)) |
* copy first row A(1, 1:N) into H(1:n) (stored in WORK(1:N)) |
Line 256
|
Line 253
|
$ A( MAX(1, J), J+1 ), LDA, |
$ A( MAX(1, J), J+1 ), LDA, |
$ IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) ) |
$ IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) ) |
* |
* |
* Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot) |
* Adjust IPIV and apply it back (J-th step picks (J+1)-th pivot) |
* |
* |
DO J2 = J+2, MIN(N, J+JB+1) |
DO J2 = J+2, MIN(N, J+JB+1) |
IPIV( J2 ) = IPIV( J2 ) + J |
IPIV( J2 ) = IPIV( J2 ) + J |
Line 376
|
Line 373
|
$ A( J+1, MAX(1, J) ), LDA, |
$ A( J+1, MAX(1, J) ), LDA, |
$ IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) ) |
$ IPIV( J+1 ), WORK, N, WORK( N*NB+1 ) ) |
* |
* |
* Ajust IPIV and apply it back (J-th step picks (J+1)-th pivot) |
* Adjust IPIV and apply it back (J-th step picks (J+1)-th pivot) |
* |
* |
DO J2 = J+2, MIN(N, J+JB+1) |
DO J2 = J+2, MIN(N, J+JB+1) |
IPIV( J2 ) = IPIV( J2 ) + J |
IPIV( J2 ) = IPIV( J2 ) + J |
Line 462
|
Line 459
|
END IF |
END IF |
* |
* |
20 CONTINUE |
20 CONTINUE |
|
WORK( 1 ) = LWKOPT |
RETURN |
RETURN |
* |
* |
* End of ZHETRF_AA |
* End of ZHETRF_AA |