version 1.4, 2018/05/29 07:17:53
|
version 1.5, 2023/08/07 08:38:50
|
Line 256
|
Line 256
|
*> The QZ iteration failed. (A,B) are not in Schur |
*> The QZ iteration failed. (A,B) are not in Schur |
*> form, but ALPHAR(j), ALPHAI(j), and BETA(j) should |
*> form, but ALPHAR(j), ALPHAI(j), and BETA(j) should |
*> be correct for j=INFO+1,...,N. |
*> 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: after reordering, roundoff changed values of |
*> =N+2: after reordering, roundoff changed values of |
*> some complex eigenvalues so that leading |
*> some complex eigenvalues so that leading |
*> eigenvalues in the Generalized Schur form no |
*> eigenvalues in the Generalized Schur form no |
Line 273
|
Line 273
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date January 2015 |
|
* |
|
*> \ingroup doubleGEeigen |
*> \ingroup doubleGEeigen |
* |
* |
* ===================================================================== |
* ===================================================================== |
Line 282
|
Line 280
|
$ LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, |
$ LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, |
$ VSR, LDVSR, WORK, LWORK, BWORK, INFO ) |
$ VSR, LDVSR, WORK, LWORK, BWORK, 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 JOBVSL, JOBVSR, SORT |
CHARACTER JOBVSL, JOBVSR, SORT |
Line 321
|
Line 318
|
DOUBLE PRECISION DIF( 2 ) |
DOUBLE PRECISION DIF( 2 ) |
* .. |
* .. |
* .. External Subroutines .. |
* .. External Subroutines .. |
EXTERNAL DGEQRF, DGGBAK, DGGBAL, DGGHD3, DHGEQZ, DLABAD, |
EXTERNAL DGEQRF, DGGBAK, DGGBAL, DGGHD3, DLAQZ0, DLABAD, |
$ DLACPY, DLASCL, DLASET, DORGQR, DORMQR, DTGSEN, |
$ DLACPY, DLASCL, DLASET, DORGQR, DORMQR, DTGSEN, |
$ XERBLA |
$ XERBLA |
* .. |
* .. |
Line 400
|
Line 397
|
CALL DGGHD3( JOBVSL, JOBVSR, N, 1, N, A, LDA, B, LDB, VSL, |
CALL DGGHD3( JOBVSL, JOBVSR, N, 1, N, A, LDA, B, LDB, VSL, |
$ LDVSL, VSR, LDVSR, WORK, -1, IERR ) |
$ LDVSL, VSR, LDVSR, WORK, -1, IERR ) |
LWKOPT = MAX( LWKOPT, 3*N+INT( WORK ( 1 ) ) ) |
LWKOPT = MAX( LWKOPT, 3*N+INT( WORK ( 1 ) ) ) |
CALL DHGEQZ( 'S', JOBVSL, JOBVSR, N, 1, N, A, LDA, B, LDB, |
CALL DLAQZ0( 'S', JOBVSL, JOBVSR, N, 1, N, A, LDA, B, LDB, |
$ ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, |
$ ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, |
$ WORK, -1, IERR ) |
$ WORK, -1, 0, IERR ) |
LWKOPT = MAX( LWKOPT, 2*N+INT( WORK ( 1 ) ) ) |
LWKOPT = MAX( LWKOPT, 2*N+INT( WORK ( 1 ) ) ) |
IF( WANTST ) THEN |
IF( WANTST ) THEN |
CALL DTGSEN( 0, ILVSL, ILVSR, BWORK, N, A, LDA, B, LDB, |
CALL DTGSEN( 0, ILVSL, ILVSR, BWORK, N, A, LDA, B, LDB, |
Line 514
|
Line 511
|
* Perform QZ algorithm, computing Schur vectors if desired |
* Perform QZ algorithm, computing Schur vectors if desired |
* |
* |
IWRK = ITAU |
IWRK = ITAU |
CALL DHGEQZ( 'S', JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, |
CALL DLAQZ0( 'S', JOBVSL, JOBVSR, N, ILO, IHI, A, LDA, B, LDB, |
$ ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, |
$ ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, |
$ 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 |