version 1.5, 2018/05/29 07:18:17
|
version 1.6, 2023/08/07 08:39:21
|
Line 196
|
Line 196
|
*> The QZ iteration failed. No eigenvectors have been |
*> The QZ iteration failed. No eigenvectors have been |
*> calculated, but ALPHA(j) and BETA(j) should be |
*> calculated, but ALPHA(j) and BETA(j) should be |
*> correct for j=INFO+1,...,N. |
*> correct for j=INFO+1,...,N. |
*> > N: =N+1: other then QZ iteration failed in DHGEQZ, |
*> > N: =N+1: other then QZ iteration failed in ZHGEQZ, |
*> =N+2: error return from DTGEVC. |
*> =N+2: error return from ZTGEVC. |
*> \endverbatim |
*> \endverbatim |
* |
* |
* Authors: |
* Authors: |
Line 208
|
Line 208
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date January 2015 |
|
* |
|
*> \ingroup complex16GEeigen |
*> \ingroup complex16GEeigen |
* |
* |
* ===================================================================== |
* ===================================================================== |
SUBROUTINE ZGGEV3( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, |
SUBROUTINE ZGGEV3( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, |
$ VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO ) |
$ VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO ) |
* |
* |
* -- LAPACK driver routine (version 3.6.1) -- |
* -- 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 256
|
Line 253
|
* .. |
* .. |
* .. External Subroutines .. |
* .. External Subroutines .. |
EXTERNAL DLABAD, XERBLA, ZGEQRF, ZGGBAK, ZGGBAL, ZGGHD3, |
EXTERNAL DLABAD, XERBLA, ZGEQRF, ZGGBAK, ZGGBAL, ZGGHD3, |
$ ZHGEQZ, ZLACPY, ZLASCL, ZLASET, ZTGEVC, ZUNGQR, |
$ ZLAQZ0, ZLACPY, ZLASCL, ZLASET, ZTGEVC, ZUNGQR, |
$ ZUNMQR |
$ ZUNMQR |
* .. |
* .. |
* .. External Functions .. |
* .. External Functions .. |
Line 338
|
Line 335
|
CALL ZGGHD3( JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, VL, |
CALL ZGGHD3( 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, N+INT( WORK( 1 ) ) ) |
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) ) |
CALL ZHGEQZ( 'S', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, |
CALL ZLAQZ0( 'S', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, |
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, -1, |
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, -1, |
$ RWORK, IERR ) |
$ RWORK, 0, IERR ) |
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) ) |
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) ) |
ELSE |
ELSE |
CALL ZGGHD3( JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, VL, |
CALL ZGGHD3( 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, N+INT( WORK( 1 ) ) ) |
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) ) |
CALL ZHGEQZ( 'E', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, |
CALL ZLAQZ0( 'E', JOBVL, JOBVR, N, 1, N, A, LDA, B, LDB, |
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, -1, |
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, -1, |
$ RWORK, IERR ) |
$ RWORK, 0, IERR ) |
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) ) |
LWKOPT = MAX( LWKOPT, N+INT( WORK( 1 ) ) ) |
END IF |
END IF |
WORK( 1 ) = DCMPLX( LWKOPT ) |
WORK( 1 ) = DCMPLX( LWKOPT ) |
Line 470
|
Line 467
|
ELSE |
ELSE |
CHTEMP = 'E' |
CHTEMP = 'E' |
END IF |
END IF |
CALL ZHGEQZ( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, |
CALL ZLAQZ0( CHTEMP, JOBVL, JOBVR, N, ILO, IHI, A, LDA, B, LDB, |
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK( IWRK ), |
$ ALPHA, BETA, VL, LDVL, VR, LDVR, WORK( IWRK ), |
$ LWORK+1-IWRK, RWORK( IRWRK ), IERR ) |
$ LWORK+1-IWRK, RWORK( IRWRK ), 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 |