* Definition:
* ===========
*
-* SUBROUTINE CSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
+* SUBROUTINE CSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO )
*
* .. Scalar Arguments ..
* CHARACTER UPLO, WAY
* ..
* .. Array Arguments ..
* INTEGER IPIV( * )
-* COMPLEX A( LDA, * ), WORK( * )
+* COMPLEX A( LDA, * ), E( * )
* ..
*
*
*> as determined by CSYTRF.
*> \endverbatim
*>
-*> \param[out] WORK
+*> \param[out] E
*> \verbatim
-*> WORK is COMPLEX array, dimension (N)
+*> E is COMPLEX array, dimension (N-1)
+*> 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
*> \ingroup complexSYcomputational
*
* =====================================================================
- SUBROUTINE CSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
+ SUBROUTINE CSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO )
*
* -- LAPACK computational routine (version 3.4.0) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* ..
* .. Array Arguments ..
INTEGER IPIV( * )
- COMPLEX A( LDA, * ), WORK( * )
+ COMPLEX A( LDA, * ), E( * )
* ..
*
* =====================================================================
*
IF ( CONVERT ) THEN
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)
- WORK(I-1)=ZERO
+ 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
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
* 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)
- WORK(I+1)=ZERO
+ 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
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
* Definition:
* ===========
*
-* SUBROUTINE DSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
+* SUBROUTINE DSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO )
*
* .. Scalar Arguments ..
* CHARACTER UPLO, WAY
* ..
* .. Array Arguments ..
* INTEGER IPIV( * )
-* DOUBLE PRECISION A( LDA, * ), WORK( * )
+* DOUBLE PRECISION A( LDA, * ), E( * )
* ..
*
*
*> as determined by DSYTRF.
*> \endverbatim
*>
-*> \param[out] WORK
+*> \param[out] E
*> \verbatim
-*> WORK is DOUBLE PRECISION array, dimension (N)
+*> E is DOUBLE PRECISION array, dimension (N-1)
+*> 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
*> \ingroup doubleSYcomputational
*
* =====================================================================
- SUBROUTINE DSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
+ SUBROUTINE DSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO )
*
* -- LAPACK computational routine (version 3.4.0) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* ..
* .. Array Arguments ..
INTEGER IPIV( * )
- DOUBLE PRECISION A( LDA, * ), WORK( * )
+ DOUBLE PRECISION A( LDA, * ), E( * )
* ..
*
* =====================================================================
*
IF ( CONVERT ) THEN
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)
- WORK(I-1)=ZERO
+ 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
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
* 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)
- WORK(I+1)=ZERO
+ 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
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
* Definition:
* ===========
*
-* SUBROUTINE SSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
+* SUBROUTINE SSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO )
*
* .. Scalar Arguments ..
* CHARACTER UPLO, WAY
* ..
* .. Array Arguments ..
* INTEGER IPIV( * )
-* REAL A( LDA, * ), WORK( * )
+* REAL A( LDA, * ), E( * )
* ..
*
*
*> as determined by SSYTRF.
*> \endverbatim
*>
-*> \param[out] WORK
+*> \param[out] E
*> \verbatim
-*> WORK is REAL array, dimension (N)
+*> E is REAL array, dimension (N-1)
+*> 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
*> \ingroup realSYcomputational
*
* =====================================================================
- SUBROUTINE SSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )
+ SUBROUTINE SSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO )
*
* -- LAPACK computational routine (version 3.4.0) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* ..
* .. Array Arguments ..
INTEGER IPIV( * )
- REAL A( LDA, * ), WORK( * )
+ REAL A( LDA, * ), E( * )
* ..
*
* =====================================================================
*
IF ( CONVERT ) THEN
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)
- WORK(I-1)=ZERO
+ 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
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
* 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)
- WORK(I+1)=ZERO
+ 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
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
* 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
* ..
* .. Array Arguments ..
* INTEGER IPIV( * )
-* COMPLEX*16 A( LDA, * ), WORK( * )
+* COMPLEX*16 A( LDA, * ), E( * )
* ..
*
*
*> 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-1)
+*> 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
*> \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 is a software package provided by Univ. of Tennessee, --
* ..
* .. Array Arguments ..
INTEGER IPIV( * )
- COMPLEX*16 A( LDA, * ), WORK( * )
+ COMPLEX*16 A( LDA, * ), E( * )
* ..
*
* =====================================================================
* 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)
- WORK(I-1)=ZERO
+ 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
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
* 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)
- WORK(I+1)=ZERO
+ 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
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