version 1.13, 2012/12/14 14:22:30
|
version 1.15, 2014/01/27 09:28:18
|
Line 282
|
Line 282
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date April 2012 |
*> \date November 2013 |
* |
* |
*> \ingroup doubleGEcomputational |
*> \ingroup doubleGEcomputational |
* |
* |
Line 304
|
Line 304
|
$ ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, WORK, |
$ ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, WORK, |
$ LWORK, INFO ) |
$ LWORK, INFO ) |
* |
* |
* -- LAPACK computational routine (version 3.4.1) -- |
* -- LAPACK computational routine (version 3.5.0) -- |
* -- 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..-- |
* April 2012 |
* November 2013 |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
CHARACTER COMPQ, COMPZ, JOB |
CHARACTER COMPQ, COMPZ, JOB |
Line 739
|
Line 739
|
* Exceptional shift. Chosen for no particularly good reason. |
* Exceptional shift. Chosen for no particularly good reason. |
* (Single shift only.) |
* (Single shift only.) |
* |
* |
IF( ( DBLE( MAXIT )*SAFMIN )*ABS( H( ILAST-1, ILAST ) ).LT. |
IF( ( DBLE( MAXIT )*SAFMIN )*ABS( H( ILAST, ILAST-1 ) ).LT. |
$ ABS( T( ILAST-1, ILAST-1 ) ) ) THEN |
$ ABS( T( ILAST-1, ILAST-1 ) ) ) THEN |
ESHIFT = ESHIFT + H( ILAST, ILAST-1 ) / |
ESHIFT = H( ILAST, ILAST-1 ) / |
$ T( ILAST-1, ILAST-1 ) |
$ T( ILAST-1, ILAST-1 ) |
ELSE |
ELSE |
ESHIFT = ESHIFT + ONE / ( SAFMIN*DBLE( MAXIT ) ) |
ESHIFT = ESHIFT + ONE / ( SAFMIN*DBLE( MAXIT ) ) |
Line 759
|
Line 759
|
$ T( ILAST-1, ILAST-1 ), LDT, SAFMIN*SAFETY, S1, |
$ T( ILAST-1, ILAST-1 ), LDT, SAFMIN*SAFETY, S1, |
$ S2, WR, WR2, WI ) |
$ S2, WR, WR2, WI ) |
* |
* |
|
IF ( ABS( (WR/S1)*T( ILAST, ILAST ) - H( ILAST, ILAST ) ) |
|
$ .GT. ABS( (WR2/S2)*T( ILAST, ILAST ) |
|
$ - H( ILAST, ILAST ) ) ) THEN |
|
TEMP = WR |
|
WR = WR2 |
|
WR2 = TEMP |
|
TEMP = S1 |
|
S1 = S2 |
|
S2 = TEMP |
|
END IF |
TEMP = MAX( S1, SAFMIN*MAX( ONE, ABS( WR ), ABS( WI ) ) ) |
TEMP = MAX( S1, SAFMIN*MAX( ONE, ABS( WR ), ABS( WI ) ) ) |
IF( WI.NE.ZERO ) |
IF( WI.NE.ZERO ) |
$ GO TO 200 |
$ GO TO 200 |