Diff for /rpl/lapack/lapack/dstedc.f between versions 1.8 and 1.19

version 1.8, 2011/11/21 20:43:04 version 1.19, 2023/08/07 08:39:07
Line 1 Line 1
 *> \brief \b DSTEBZ  *> \brief \b DSTEDC
 *  *
 *  =========== 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 DSTEDC + dependencies   *> Download DSTEDC + dependencies
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dstedc.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dstedc.f">
 *> [TGZ]</a>   *> [TGZ]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dstedc.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dstedc.f">
 *> [ZIP]</a>   *> [ZIP]</a>
 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstedc.f">   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dstedc.f">
 *> [TXT]</a>  *> [TXT]</a>
 *> \endhtmlonly   *> \endhtmlonly
 *  *
 *  Definition:  *  Definition:
 *  ===========  *  ===========
 *  *
 *       SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,  *       SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
 *                          LIWORK, INFO )  *                          LIWORK, INFO )
 *   *
 *       .. Scalar Arguments ..  *       .. Scalar Arguments ..
 *       CHARACTER          COMPZ  *       CHARACTER          COMPZ
 *       INTEGER            INFO, LDZ, LIWORK, LWORK, N  *       INTEGER            INFO, LDZ, LIWORK, LWORK, N
Line 29 Line 29
 *       INTEGER            IWORK( * )  *       INTEGER            IWORK( * )
 *       DOUBLE PRECISION   D( * ), E( * ), WORK( * ), Z( LDZ, * )  *       DOUBLE PRECISION   D( * ), E( * ), WORK( * ), Z( LDZ, * )
 *       ..  *       ..
 *    *
 *  *
 *> \par Purpose:  *> \par Purpose:
 *  =============  *  =============
Line 105 Line 105
 *>  *>
 *> \param[out] WORK  *> \param[out] WORK
 *> \verbatim  *> \verbatim
 *>          WORK is DOUBLE PRECISION array,  *>          WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
 *>                                         dimension (LWORK)  
 *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.  *>          On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
 *> \endverbatim  *> \endverbatim
 *>  *>
Line 169 Line 168
 *  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  
 *  *
 *> \ingroup auxOTHERcomputational  *> \ingroup auxOTHERcomputational
 *  *
Line 189 Line 186
       SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,        SUBROUTINE DSTEDC( COMPZ, N, D, E, Z, LDZ, WORK, LWORK, IWORK,
      $                   LIWORK, INFO )       $                   LIWORK, INFO )
 *  *
 *  -- LAPACK computational routine (version 3.4.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 2011  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          COMPZ        CHARACTER          COMPZ
Line 443 Line 439
 *  *
 *        endwhile  *        endwhile
 *  *
 *        If the problem split any number of times, then the eigenvalues           IF( ICOMPZ.EQ.0 ) THEN
 *        will not be properly ordered.  Here we permute the eigenvalues  
 *        (and the associated eigenvectors) into ascending order.  
 *  
          IF( M.NE.N ) THEN  
             IF( ICOMPZ.EQ.0 ) THEN  
 *  *
 *              Use Quick Sort  *          Use Quick Sort
 *  *
                CALL DLASRT( 'I', N, D, INFO )             CALL DLASRT( 'I', N, D, INFO )
 *  *
             ELSE           ELSE
 *  *
 *              Use Selection Sort to minimize swaps of eigenvectors  *          Use Selection Sort to minimize swaps of eigenvectors
 *  *
                DO 40 II = 2, N             DO 40 II = 2, N
                   I = II - 1                I = II - 1
                   K = I                K = I
                   P = D( I )                P = D( I )
                   DO 30 J = II, N                DO 30 J = II, N
                      IF( D( J ).LT.P ) THEN                   IF( D( J ).LT.P ) THEN
                         K = J                      K = J
                         P = D( J )                      P = D( J )
                      END IF                   END IF
    30             CONTINUE     30         CONTINUE
                   IF( K.NE.I ) THEN                IF( K.NE.I ) THEN
                      D( K ) = D( I )                   D( K ) = D( I )
                      D( I ) = P                   D( I ) = P
                      CALL DSWAP( N, Z( 1, I ), 1, Z( 1, K ), 1 )                   CALL DSWAP( N, Z( 1, I ), 1, Z( 1, K ), 1 )
                   END IF                END IF
    40          CONTINUE     40      CONTINUE
             END IF  
          END IF           END IF
       END IF        END IF
 *  *

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


CVSweb interface <joel.bertrand@systella.fr>