Diff for /rpl/lapack/lapack/zsyconv.f between versions 1.8 and 1.13

version 1.8, 2014/01/27 09:28:42 version 1.13, 2018/05/29 07:18:36
Line 2 Line 2
 *  *
 *  =========== DOCUMENTATION ===========  *  =========== DOCUMENTATION ===========
 *  *
 * Online html documentation available at   * Online html documentation available at
 *            http://www.netlib.org/lapack/explore-html/   *            http://www.netlib.org/lapack/explore-html/
 *  *
 *> \htmlonly  *> \htmlonly
 *> Download ZSYCONV + dependencies   *> Download ZSYCONV + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zsyconv.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/zsyconv.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zsyconv.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/zsyconv.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsyconv.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/zsyconv.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  Definition:
 *  ===========  *  ===========
 *  *
 *       SUBROUTINE ZSYCONV( UPLO, WAY, N, A, LDA, IPIV, WORK, INFO )  *       SUBROUTINE ZSYCONV( UPLO, WAY, N, A, LDA, IPIV, E, INFO )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       CHARACTER          UPLO, WAY  *       CHARACTER          UPLO, WAY
 *       INTEGER            INFO, LDA, N  *       INTEGER            INFO, LDA, N
 *       ..  *       ..
 *       .. Array Arguments ..  *       .. Array Arguments ..
 *       INTEGER            IPIV( * )  *       INTEGER            IPIV( * )
 *       COMPLEX*16         A( LDA, * ), WORK( * )  *       COMPLEX*16         A( LDA, * ), E( * )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 36 Line 36
 *> \verbatim  *> \verbatim
 *>  *>
 *> ZSYCONV converts A given by ZHETRF into L and D or vice-versa.  *> 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.  *> apply or reverse permutation done in TRF.
 *> \endverbatim  *> \endverbatim
 *  *
Line 55 Line 55
 *> \param[in] WAY  *> \param[in] WAY
 *> \verbatim  *> \verbatim
 *>          WAY is CHARACTER*1  *>          WAY is CHARACTER*1
 *>          = 'C': Convert   *>          = 'C': Convert
 *>          = 'R': Revert  *>          = 'R': Revert
 *> \endverbatim  *> \endverbatim
 *>  *>
Line 65 Line 65
 *>          The order of the matrix A.  N >= 0.  *>          The order of the matrix A.  N >= 0.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[in] A  *> \param[in,out] A
 *> \verbatim  *> \verbatim
 *>          A is COMPLEX*16 array, dimension (LDA,N)  *>          A is COMPLEX*16 array, dimension (LDA,N)
 *>          The block diagonal matrix D and the multipliers used to  *>          The block diagonal matrix D and the multipliers used to
Line 85 Line 85
 *>          as determined by ZSYTRF.  *>          as determined by ZSYTRF.
 *> \endverbatim  *> \endverbatim
 *>  *>
 *> \param[out] WORK  *> \param[out] E
 *> \verbatim  *> \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  *> \endverbatim
 *>  *>
 *> \param[out] INFO  *> \param[out] INFO
Line 100 Line 102
 *  Authors:  *  Authors:
 *  ========  *  ========
 *  *
 *> \author Univ. of Tennessee   *> \author Univ. of Tennessee
 *> \author Univ. of California Berkeley   *> \author Univ. of California Berkeley
 *> \author Univ. of Colorado Denver   *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.   *> \author NAG Ltd.
 *  *
 *> \date November 2011  *> \date December 2016
 *  *
 *> \ingroup complex16SYcomputational  *> \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,    --  *  -- 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 2011  *     December 2016
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          UPLO, WAY        CHARACTER          UPLO, WAY
Line 123 Line 125
 *     ..  *     ..
 *     .. Array Arguments ..  *     .. Array Arguments ..
       INTEGER            IPIV( * )        INTEGER            IPIV( * )
       COMPLEX*16         A( LDA, * ), WORK( * )        COMPLEX*16         A( LDA, * ), E( * )
 *     ..  *     ..
 *  *
 *  =====================================================================  *  =====================================================================
Line 179 Line 181
 *           Convert VALUE  *           Convert VALUE
 *  *
             I=N              I=N
             WORK(1)=ZERO              E(1)=ZERO
             DO WHILE ( I .GT. 1 )              DO WHILE ( I .GT. 1 )
                IF( IPIV(I) .LT. 0 ) THEN                 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                    A(I-1,I)=ZERO
                   I=I-1                    I=I-1
                ELSE                 ELSE
                   WORK(I)=ZERO                    E(I)=ZERO
                ENDIF                 ENDIF
                I=I-1                 I=I-1
             END DO              END DO
 *  *
 *           Convert PERMUTATIONS  *           Convert PERMUTATIONS
 *    *
             I=N              I=N
             DO WHILE ( I .GE. 1 )              DO WHILE ( I .GE. 1 )
                IF( IPIV(I) .GT. 0) THEN                 IF( IPIV(I) .GT. 0) THEN
Line 223 Line 226
 *           Revert A (A is upper)  *           Revert A (A is upper)
 *  *
 *           Revert PERMUTATIONS  *           Revert PERMUTATIONS
 *    *
             I=1              I=1
             DO WHILE ( I .LE. N )              DO WHILE ( I .LE. N )
                IF( IPIV(I) .GT. 0 ) THEN                 IF( IPIV(I) .GT. 0 ) THEN
Line 254 Line 257
             I=N              I=N
             DO WHILE ( I .GT. 1 )              DO WHILE ( I .GT. 1 )
                IF( IPIV(I) .LT. 0 ) THEN                 IF( IPIV(I) .LT. 0 ) THEN
                   A(I-1,I)=WORK(I)                    A(I-1,I)=E(I)
                   I=I-1                    I=I-1
                ENDIF                 ENDIF
                I=I-1                 I=I-1
Line 272 Line 275
 *           Convert VALUE  *           Convert VALUE
 *  *
             I=1              I=1
             WORK(N)=ZERO              E(N)=ZERO
             DO WHILE ( I .LE. N )              DO WHILE ( I .LE. N )
                IF( I.LT.N .AND. IPIV(I) .LT. 0 ) THEN                 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                    A(I+1,I)=ZERO
                   I=I+1                    I=I+1
                ELSE                 ELSE
                   WORK(I)=ZERO                    E(I)=ZERO
                ENDIF                 ENDIF
                I=I+1                 I=I+1
             END DO              END DO
Line 347 Line 351
             I=1              I=1
             DO WHILE ( I .LE. N-1 )              DO WHILE ( I .LE. N-1 )
                IF( IPIV(I) .LT. 0 ) THEN                 IF( IPIV(I) .LT. 0 ) THEN
                   A(I+1,I)=WORK(I)                    A(I+1,I)=E(I)
                   I=I+1                    I=I+1
                ENDIF                 ENDIF
                I=I+1                 I=I+1

Removed from v.1.8  
changed lines
  Added in v.1.13


CVSweb interface <joel.bertrand@systella.fr>