Diff for /rpl/lapack/lapack/dggev3.f between versions 1.4 and 1.5

version 1.4, 2018/05/29 07:17:53 version 1.5, 2023/08/07 08:38:51
Line 205 Line 205
 *>                The QZ iteration failed.  No eigenvectors have been  *>                The QZ iteration failed.  No eigenvectors have been
 *>                calculated, but ALPHAR(j), ALPHAI(j), and BETA(j)  *>                calculated, but ALPHAR(j), ALPHAI(j), and BETA(j)
 *>                should be correct for j=INFO+1,...,N.  *>                should be correct for j=INFO+1,...,N.
 *>          > N:  =N+1: other than QZ iteration failed in DHGEQZ.  *>          > N:  =N+1: other than QZ iteration failed in DLAQZ0.
 *>                =N+2: error return from DTGEVC.  *>                =N+2: error return from DTGEVC.
 *> \endverbatim  *> \endverbatim
 *  *
Line 217 Line 217
 *> \author Univ. of Colorado Denver  *> \author Univ. of Colorado Denver
 *> \author NAG Ltd.  *> \author NAG Ltd.
 *  *
 *> \date January 2015  
 *  
 *> \ingroup doubleGEeigen  *> \ingroup doubleGEeigen
 *  *
 *  =====================================================================  *  =====================================================================
Line 226 Line 224
      $                   ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK,       $                   ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK,
      $                   INFO )       $                   INFO )
 *  *
 *  -- LAPACK driver routine (version 3.6.0) --  *  -- LAPACK driver 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..--
 *     January 2015  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       CHARACTER          JOBVL, JOBVR        CHARACTER          JOBVL, JOBVR
Line 259 Line 256
       LOGICAL            LDUMMA( 1 )        LOGICAL            LDUMMA( 1 )
 *     ..  *     ..
 *     .. External Subroutines ..  *     .. External Subroutines ..
       EXTERNAL           DGEQRF, DGGBAK, DGGBAL, DGGHD3, DHGEQZ, DLABAD,        EXTERNAL           DGEQRF, DGGBAK, DGGBAL, DGGHD3, DLAQZ0, DLABAD,
      $                   DLACPY, DLASCL, DLASET, DORGQR, DORMQR, DTGEVC,       $                   DLACPY, DLASCL, DLASET, DORGQR, DORMQR, DTGEVC,
      $                   XERBLA       $                   XERBLA
 *     ..  *     ..
Line 336 Line 333
             CALL DGGHD3( JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, VL,              CALL DGGHD3( JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, VL,
      $                   LDVL, VR, LDVR, WORK, -1, IERR )       $                   LDVL, VR, LDVR, WORK, -1, IERR )
             LWKOPT = MAX( LWKOPT, 3*N+INT( WORK ( 1 ) ) )              LWKOPT = MAX( LWKOPT, 3*N+INT( WORK ( 1 ) ) )
             CALL DHGEQZ( 'S', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,              CALL DLAQZ0( 'S', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,
      $                   ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR,       $                   ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR,
      $                   WORK, -1, IERR )       $                   WORK, -1, 0, IERR )
             LWKOPT = MAX( LWKOPT, 2*N+INT( WORK ( 1 ) ) )              LWKOPT = MAX( LWKOPT, 2*N+INT( WORK ( 1 ) ) )
          ELSE           ELSE
             CALL DGGHD3( 'N', 'N', N, 1, N, A, LDA, B, LDB, VL, LDVL,              CALL DGGHD3( 'N', 'N', N, 1, N, A, LDA, B, LDB, VL, LDVL,
      $                   VR, LDVR, WORK, -1, IERR )       $                   VR, LDVR, WORK, -1, IERR )
             LWKOPT = MAX( LWKOPT, 3*N+INT( WORK ( 1 ) ) )              LWKOPT = MAX( LWKOPT, 3*N+INT( WORK ( 1 ) ) )
             CALL DHGEQZ( 'E', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,              CALL DLAQZ0( 'E', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB,
      $                   ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR,       $                   ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR,
      $                   WORK, -1, IERR )       $                   WORK, -1, 0, IERR )
             LWKOPT = MAX( LWKOPT, 2*N+INT( WORK ( 1 ) ) )              LWKOPT = MAX( LWKOPT, 2*N+INT( WORK ( 1 ) ) )
          END IF           END IF
   
Line 469 Line 466
       ELSE        ELSE
          CHTEMP = 'E'           CHTEMP = 'E'
       END IF        END IF
       CALL DHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB,        CALL DLAQZ0( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB,
      $             ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR,       $             ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR,
      $             WORK( IWRK ), LWORK+1-IWRK, IERR )       $             WORK( IWRK ), LWORK+1-IWRK, 0, IERR )
       IF( IERR.NE.0 ) THEN        IF( IERR.NE.0 ) THEN
          IF( IERR.GT.0 .AND. IERR.LE.N ) THEN           IF( IERR.GT.0 .AND. IERR.LE.N ) THEN
             INFO = IERR              INFO = IERR

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


CVSweb interface <joel.bertrand@systella.fr>