Diff for /rpl/lapack/lapack/dgebak.f between versions 1.4 and 1.18

version 1.4, 2010/08/06 15:32:22 version 1.18, 2023/08/07 08:38:47
Line 1 Line 1
   *> \brief \b DGEBAK
   *
   *  =========== DOCUMENTATION ===========
   *
   * Online html documentation available at
   *            http://www.netlib.org/lapack/explore-html/
   *
   *> \htmlonly
   *> Download DGEBAK + dependencies
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgebak.f">
   *> [TGZ]</a>
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgebak.f">
   *> [ZIP]</a>
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgebak.f">
   *> [TXT]</a>
   *> \endhtmlonly
   *
   *  Definition:
   *  ===========
   *
   *       SUBROUTINE DGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
   *                          INFO )
   *
   *       .. Scalar Arguments ..
   *       CHARACTER          JOB, SIDE
   *       INTEGER            IHI, ILO, INFO, LDV, M, N
   *       ..
   *       .. Array Arguments ..
   *       DOUBLE PRECISION   SCALE( * ), V( LDV, * )
   *       ..
   *
   *
   *> \par Purpose:
   *  =============
   *>
   *> \verbatim
   *>
   *> DGEBAK forms the right or left eigenvectors of a real general matrix
   *> by backward transformation on the computed eigenvectors of the
   *> balanced matrix output by DGEBAL.
   *> \endverbatim
   *
   *  Arguments:
   *  ==========
   *
   *> \param[in] JOB
   *> \verbatim
   *>          JOB is CHARACTER*1
   *>          Specifies the type of backward transformation required:
   *>          = 'N': do nothing, return immediately;
   *>          = 'P': do backward transformation for permutation only;
   *>          = 'S': do backward transformation for scaling only;
   *>          = 'B': do backward transformations for both permutation and
   *>                 scaling.
   *>          JOB must be the same as the argument JOB supplied to DGEBAL.
   *> \endverbatim
   *>
   *> \param[in] SIDE
   *> \verbatim
   *>          SIDE is CHARACTER*1
   *>          = 'R':  V contains right eigenvectors;
   *>          = 'L':  V contains left eigenvectors.
   *> \endverbatim
   *>
   *> \param[in] N
   *> \verbatim
   *>          N is INTEGER
   *>          The number of rows of the matrix V.  N >= 0.
   *> \endverbatim
   *>
   *> \param[in] ILO
   *> \verbatim
   *>          ILO is INTEGER
   *> \endverbatim
   *>
   *> \param[in] IHI
   *> \verbatim
   *>          IHI is INTEGER
   *>          The integers ILO and IHI determined by DGEBAL.
   *>          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
   *> \endverbatim
   *>
   *> \param[in] SCALE
   *> \verbatim
   *>          SCALE is DOUBLE PRECISION array, dimension (N)
   *>          Details of the permutation and scaling factors, as returned
   *>          by DGEBAL.
   *> \endverbatim
   *>
   *> \param[in] M
   *> \verbatim
   *>          M is INTEGER
   *>          The number of columns of the matrix V.  M >= 0.
   *> \endverbatim
   *>
   *> \param[in,out] V
   *> \verbatim
   *>          V is DOUBLE PRECISION array, dimension (LDV,M)
   *>          On entry, the matrix of right or left eigenvectors to be
   *>          transformed, as returned by DHSEIN or DTREVC.
   *>          On exit, V is overwritten by the transformed eigenvectors.
   *> \endverbatim
   *>
   *> \param[in] LDV
   *> \verbatim
   *>          LDV is INTEGER
   *>          The leading dimension of the array V. LDV >= max(1,N).
   *> \endverbatim
   *>
   *> \param[out] INFO
   *> \verbatim
   *>          INFO is INTEGER
   *>          = 0:  successful exit
   *>          < 0:  if INFO = -i, the i-th argument had an illegal value.
   *> \endverbatim
   *
   *  Authors:
   *  ========
   *
   *> \author Univ. of Tennessee
   *> \author Univ. of California Berkeley
   *> \author Univ. of Colorado Denver
   *> \author NAG Ltd.
   *
   *> \ingroup doubleGEcomputational
   *
   *  =====================================================================
       SUBROUTINE DGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,        SUBROUTINE DGEBAK( JOB, SIDE, N, ILO, IHI, SCALE, M, V, LDV,
      $                   INFO )       $                   INFO )
 *  *
 *  -- LAPACK routine (version 3.2) --  *  -- 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 2006  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          JOB, SIDE        CHARACTER          JOB, SIDE
Line 14 Line 140
       DOUBLE PRECISION   SCALE( * ), V( LDV, * )        DOUBLE PRECISION   SCALE( * ), V( LDV, * )
 *     ..  *     ..
 *  *
 *  Purpose  
 *  =======  
 *  
 *  DGEBAK forms the right or left eigenvectors of a real general matrix  
 *  by backward transformation on the computed eigenvectors of the  
 *  balanced matrix output by DGEBAL.  
 *  
 *  Arguments  
 *  =========  
 *  
 *  JOB     (input) CHARACTER*1  
 *          Specifies the type of backward transformation required:  
 *          = 'N', do nothing, return immediately;  
 *          = 'P', do backward transformation for permutation only;  
 *          = 'S', do backward transformation for scaling only;  
 *          = 'B', do backward transformations for both permutation and  
 *                 scaling.  
 *          JOB must be the same as the argument JOB supplied to DGEBAL.  
 *  
 *  SIDE    (input) CHARACTER*1  
 *          = 'R':  V contains right eigenvectors;  
 *          = 'L':  V contains left eigenvectors.  
 *  
 *  N       (input) INTEGER  
 *          The number of rows of the matrix V.  N >= 0.  
 *  
 *  ILO     (input) INTEGER  
 *  IHI     (input) INTEGER  
 *          The integers ILO and IHI determined by DGEBAL.  
 *          1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.  
 *  
 *  SCALE   (input) DOUBLE PRECISION array, dimension (N)  
 *          Details of the permutation and scaling factors, as returned  
 *          by DGEBAL.  
 *  
 *  M       (input) INTEGER  
 *          The number of columns of the matrix V.  M >= 0.  
 *  
 *  V       (input/output) DOUBLE PRECISION array, dimension (LDV,M)  
 *          On entry, the matrix of right or left eigenvectors to be  
 *          transformed, as returned by DHSEIN or DTREVC.  
 *          On exit, V is overwritten by the transformed eigenvectors.  
 *  
 *  LDV     (input) INTEGER  
 *          The leading dimension of the array V. LDV >= max(1,N).  
 *  
 *  INFO    (output) INTEGER  
 *          = 0:  successful exit  
 *          < 0:  if INFO = -i, the i-th argument had an illegal value.  
 *  
 *  =====================================================================  *  =====================================================================
 *  *
 *     .. Parameters ..  *     .. Parameters ..
Line 160 Line 236
      $            GO TO 40       $            GO TO 40
                IF( I.LT.ILO )                 IF( I.LT.ILO )
      $            I = ILO - II       $            I = ILO - II
                K = SCALE( I )                 K = INT( SCALE( I ) )
                IF( K.EQ.I )                 IF( K.EQ.I )
      $            GO TO 40       $            GO TO 40
                CALL DSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )                 CALL DSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
Line 174 Line 250
      $            GO TO 50       $            GO TO 50
                IF( I.LT.ILO )                 IF( I.LT.ILO )
      $            I = ILO - II       $            I = ILO - II
                K = SCALE( I )                 K = INT( SCALE( I ) )
                IF( K.EQ.I )                 IF( K.EQ.I )
      $            GO TO 50       $            GO TO 50
                CALL DSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )                 CALL DSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )

Removed from v.1.4  
changed lines
  Added in v.1.18


CVSweb interface <joel.bertrand@systella.fr>