version 1.3, 2017/06/17 11:06:19
|
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 |