version 1.4, 2010/08/06 15:32:26
|
version 1.9, 2011/07/22 07:38:06
|
Line 1
|
Line 1
|
SUBROUTINE DLAEIN( RIGHTV, NOINIT, N, H, LDH, WR, WI, VR, VI, B, |
SUBROUTINE DLAEIN( RIGHTV, NOINIT, N, H, LDH, WR, WI, VR, VI, B, |
$ LDB, WORK, EPS3, SMLNUM, BIGNUM, INFO ) |
$ LDB, WORK, EPS3, SMLNUM, BIGNUM, INFO ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.2) -- |
* -- LAPACK auxiliary routine (version 3.3.1) -- |
* -- 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..-- |
* November 2006 |
* -- April 2011 -- |
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
LOGICAL NOINIT, RIGHTV |
LOGICAL NOINIT, RIGHTV |
Line 26
|
Line 26
|
* Arguments |
* Arguments |
* ========= |
* ========= |
* |
* |
* RIGHTV (input) LOGICAL |
* RIGHTV (input) LOGICAL |
* = .TRUE. : compute right eigenvector; |
* = .TRUE. : compute right eigenvector; |
* = .FALSE.: compute left eigenvector. |
* = .FALSE.: compute left eigenvector. |
* |
* |
* NOINIT (input) LOGICAL |
* NOINIT (input) LOGICAL |
* = .TRUE. : no initial vector supplied in (VR,VI). |
* = .TRUE. : no initial vector supplied in (VR,VI). |
* = .FALSE.: initial vector supplied in (VR,VI). |
* = .FALSE.: initial vector supplied in (VR,VI). |
* |
* |
Line 70
|
Line 70
|
* LDB (input) INTEGER |
* LDB (input) INTEGER |
* The leading dimension of the array B. LDB >= N+1. |
* The leading dimension of the array B. LDB >= N+1. |
* |
* |
* WORK (workspace) DOUBLE PRECISION array, dimension (N) |
* WORK (workspace) DOUBLE PRECISION array, dimension (N) |
* |
* |
* EPS3 (input) DOUBLE PRECISION |
* EPS3 (input) DOUBLE PRECISION |
* A small machine-dependent value which is used to perturb |
* A small machine-dependent value which is used to perturb |
Line 232
|
Line 232
|
DO 110 ITS = 1, N |
DO 110 ITS = 1, N |
* |
* |
* Solve U*x = scale*v for a right eigenvector |
* Solve U*x = scale*v for a right eigenvector |
* or U'*x = scale*v for a left eigenvector, |
* or U**T*x = scale*v for a left eigenvector, |
* overwriting x on v. |
* overwriting x on v. |
* |
* |
CALL DLATRS( 'Upper', TRANS, 'Nonunit', NORMIN, N, B, LDB, |
CALL DLATRS( 'Upper', TRANS, 'Nonunit', NORMIN, N, B, LDB, |
Line 427
|
Line 427
|
VCRIT = BIGNUM |
VCRIT = BIGNUM |
* |
* |
* Solve U*(xr,xi) = scale*(vr,vi) for a right eigenvector, |
* Solve U*(xr,xi) = scale*(vr,vi) for a right eigenvector, |
* or U'*(xr,xi) = scale*(vr,vi) for a left eigenvector, |
* or U**T*(xr,xi) = scale*(vr,vi) for a left eigenvector, |
* overwriting (xr,xi) on (vr,vi). |
* overwriting (xr,xi) on (vr,vi). |
* |
* |
DO 250 I = I1, I2, I3 |
DO 250 I = I1, I2, I3 |