--- rpl/lapack/lapack/zsyconv.f 2011/11/21 22:19:57 1.5 +++ rpl/lapack/lapack/zsyconv.f 2018/05/29 07:18:36 1.13 @@ -2,33 +2,33 @@ * * =========== 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 ZSYCONV + dependencies -*> -*> [TGZ] -*> -*> [ZIP] -*> +*> Download ZSYCONV + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> *> [TXT] -*> \endhtmlonly +*> \endhtmlonly * * Definition: * =========== * -* SUBROUTINE ZSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO ) -* +* SUBROUTINE ZSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO ) +* * .. Scalar Arguments .. * CHARACTER UPLO, WAY * INTEGER INFO, LDA, N * .. * .. Array Arguments .. * INTEGER IPIV( * ) -* COMPLEX*16 A( LDA, * ), WORK( * ) +* COMPLEX*16 A( LDA, * ), E( * ) * .. -* +* * *> \par Purpose: * ============= @@ -36,7 +36,7 @@ *> \verbatim *> *> ZSYCONV converts A given by ZHETRF into L and D or vice-versa. -*> Get nondiagonal elements of D (returned in workspace) and +*> Get nondiagonal elements of D (returned in workspace) and *> apply or reverse permutation done in TRF. *> \endverbatim * @@ -55,7 +55,7 @@ *> \param[in] WAY *> \verbatim *> WAY is CHARACTER*1 -*> = 'C': Convert +*> = 'C': Convert *> = 'R': Revert *> \endverbatim *> @@ -65,7 +65,7 @@ *> The order of the matrix A. N >= 0. *> \endverbatim *> -*> \param[in] A +*> \param[in,out] A *> \verbatim *> A is COMPLEX*16 array, dimension (LDA,N) *> The block diagonal matrix D and the multipliers used to @@ -85,9 +85,11 @@ *> as determined by ZSYTRF. *> \endverbatim *> -*> \param[out] WORK +*> \param[out] E *> \verbatim -*> WORK is COMPLEX*16 array, dimension (N) +*> E is COMPLEX*16 array, dimension (N) +*> E stores the supdiagonal/subdiagonal of the symmetric 1-by-1 +*> or 2-by-2 block diagonal matrix D in LDLT. *> \endverbatim *> *> \param[out] INFO @@ -100,22 +102,22 @@ * 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 November 2011 +*> \date December 2016 * *> \ingroup complex16SYcomputational * * ===================================================================== - SUBROUTINE ZSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO ) + SUBROUTINE ZSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO ) * -* -- LAPACK computational routine (version 3.4.0) -- +* -- LAPACK computational routine (version 3.7.0) -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2011 +* December 2016 * * .. Scalar Arguments .. CHARACTER UPLO, WAY @@ -123,7 +125,7 @@ * .. * .. Array Arguments .. INTEGER IPIV( * ) - COMPLEX*16 A( LDA, * ), WORK( * ) + COMPLEX*16 A( LDA, * ), E( * ) * .. * * ===================================================================== @@ -179,20 +181,21 @@ * Convert VALUE * I=N - WORK(1)=ZERO + E(1)=ZERO DO WHILE ( I .GT. 1 ) IF( IPIV(I) .LT. 0 ) THEN - WORK(I)=A(I-1,I) + E(I)=A(I-1,I) + E(I-1)=ZERO A(I-1,I)=ZERO I=I-1 ELSE - WORK(I)=ZERO + E(I)=ZERO ENDIF I=I-1 END DO * * Convert PERMUTATIONS -* +* I=N DO WHILE ( I .GE. 1 ) IF( IPIV(I) .GT. 0) THEN @@ -223,7 +226,7 @@ * Revert A (A is upper) * * Revert PERMUTATIONS -* +* I=1 DO WHILE ( I .LE. N ) IF( IPIV(I) .GT. 0 ) THEN @@ -254,7 +257,7 @@ I=N DO WHILE ( I .GT. 1 ) IF( IPIV(I) .LT. 0 ) THEN - A(I-1,I)=WORK(I) + A(I-1,I)=E(I) I=I-1 ENDIF I=I-1 @@ -272,14 +275,15 @@ * Convert VALUE * I=1 - WORK(N)=ZERO + E(N)=ZERO DO WHILE ( I .LE. N ) IF( I.LT.N .AND. IPIV(I) .LT. 0 ) THEN - WORK(I)=A(I+1,I) + E(I)=A(I+1,I) + E(I+1)=ZERO A(I+1,I)=ZERO I=I+1 ELSE - WORK(I)=ZERO + E(I)=ZERO ENDIF I=I+1 END DO @@ -347,7 +351,7 @@ I=1 DO WHILE ( I .LE. N-1 ) IF( IPIV(I) .LT. 0 ) THEN - A(I+1,I)=WORK(I) + A(I+1,I)=E(I) I=I+1 ENDIF I=I+1