# laein - Man Page

laein: eigvec by Hessenberg inverse iteration

## Synopsis

### Functions

subroutine claein (rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info)
CLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.
subroutine dlaein (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info)
DLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.
subroutine slaein (rightv, noinit, n, h, ldh, wr, wi, vr, vi, b, ldb, work, eps3, smlnum, bignum, info)
SLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.
subroutine zlaein (rightv, noinit, n, h, ldh, w, v, b, ldb, rwork, eps3, smlnum, info)
ZLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.

## Function Documentation

### subroutine claein (logical rightv, logical noinit, integer n, complex, dimension( ldh, * ) h, integer ldh, complex w, complex, dimension( * ) v, complex, dimension( ldb, * ) b, integer ldb, real, dimension( * ) rwork, real eps3, real smlnum, integer info)

CLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.

Purpose:

``` CLAEIN uses inverse iteration to find a right or left eigenvector
corresponding to the eigenvalue W of a complex upper Hessenberg
matrix H.```
Parameters

RIGHTV

```          RIGHTV is LOGICAL
= .TRUE. : compute right eigenvector;
= .FALSE.: compute left eigenvector.```

NOINIT

```          NOINIT is LOGICAL
= .TRUE. : no initial vector supplied in V
= .FALSE.: initial vector supplied in V.```

N

```          N is INTEGER
The order of the matrix H.  N >= 0.```

H

```          H is COMPLEX array, dimension (LDH,N)
The upper Hessenberg matrix H.```

LDH

```          LDH is INTEGER
The leading dimension of the array H.  LDH >= max(1,N).```

W

```          W is COMPLEX
The eigenvalue of H whose corresponding right or left
eigenvector is to be computed.```

V

```          V is COMPLEX array, dimension (N)
On entry, if NOINIT = .FALSE., V must contain a starting
vector for inverse iteration; otherwise V need not be set.
On exit, V contains the computed eigenvector, normalized so
that the component of largest magnitude has magnitude 1; here
the magnitude of a complex number (x,y) is taken to be
|x| + |y|.```

B

`          B is COMPLEX array, dimension (LDB,N)`

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).```

RWORK

`          RWORK is REAL array, dimension (N)`

EPS3

```          EPS3 is REAL
A small machine-dependent value which is used to perturb
close eigenvalues, and to replace zero pivots.```

SMLNUM

```          SMLNUM is REAL
A machine-dependent value close to the underflow threshold.```

INFO

```          INFO is INTEGER
= 0:  successful exit
= 1:  inverse iteration did not converge; V is set to the
last iterate.```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Definition at line 147 of file claein.f.

### subroutine dlaein (logical rightv, logical noinit, integer n, double precision, dimension( ldh, * ) h, integer ldh, double precision wr, double precision wi, double precision, dimension( * ) vr, double precision, dimension( * ) vi, double precision, dimension( ldb, * ) b, integer ldb, double precision, dimension( * ) work, double precision eps3, double precision smlnum, double precision bignum, integer info)

DLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.

Purpose:

``` DLAEIN uses inverse iteration to find a right or left eigenvector
corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg
matrix H.```
Parameters

RIGHTV

```          RIGHTV is LOGICAL
= .TRUE. : compute right eigenvector;
= .FALSE.: compute left eigenvector.```

NOINIT

```          NOINIT is LOGICAL
= .TRUE. : no initial vector supplied in (VR,VI).
= .FALSE.: initial vector supplied in (VR,VI).```

N

```          N is INTEGER
The order of the matrix H.  N >= 0.```

H

```          H is DOUBLE PRECISION array, dimension (LDH,N)
The upper Hessenberg matrix H.```

LDH

```          LDH is INTEGER
The leading dimension of the array H.  LDH >= max(1,N).```

WR

`          WR is DOUBLE PRECISION`

WI

```          WI is DOUBLE PRECISION
The real and imaginary parts of the eigenvalue of H whose
corresponding right or left eigenvector is to be computed.```

VR

`          VR is DOUBLE PRECISION array, dimension (N)`

VI

```          VI is DOUBLE PRECISION array, dimension (N)
On entry, if NOINIT = .FALSE. and WI = 0.0, VR must contain
a real starting vector for inverse iteration using the real
eigenvalue WR; if NOINIT = .FALSE. and WI.ne.0.0, VR and VI
must contain the real and imaginary parts of a complex
starting vector for inverse iteration using the complex
eigenvalue (WR,WI); otherwise VR and VI need not be set.
On exit, if WI = 0.0 (real eigenvalue), VR contains the
computed real eigenvector; if WI.ne.0.0 (complex eigenvalue),
VR and VI contain the real and imaginary parts of the
computed complex eigenvector. The eigenvector is normalized
so that the component of largest magnitude has magnitude 1;
here the magnitude of a complex number (x,y) is taken to be
|x| + |y|.
VI is not referenced if WI = 0.0.```

B

`          B is DOUBLE PRECISION array, dimension (LDB,N)`

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= N+1.```

WORK

`          WORK is DOUBLE PRECISION array, dimension (N)`

EPS3

```          EPS3 is DOUBLE PRECISION
A small machine-dependent value which is used to perturb
close eigenvalues, and to replace zero pivots.```

SMLNUM

```          SMLNUM is DOUBLE PRECISION
A machine-dependent value close to the underflow threshold.```

BIGNUM

```          BIGNUM is DOUBLE PRECISION
A machine-dependent value close to the overflow threshold.```

INFO

```          INFO is INTEGER
= 0:  successful exit
= 1:  inverse iteration did not converge; VR is set to the
last iterate, and so is VI if WI.ne.0.0.```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Definition at line 170 of file dlaein.f.

### subroutine slaein (logical rightv, logical noinit, integer n, real, dimension( ldh, * ) h, integer ldh, real wr, real wi, real, dimension( * ) vr, real, dimension( * ) vi, real, dimension( ldb, * ) b, integer ldb, real, dimension( * ) work, real eps3, real smlnum, real bignum, integer info)

SLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.

Purpose:

``` SLAEIN uses inverse iteration to find a right or left eigenvector
corresponding to the eigenvalue (WR,WI) of a real upper Hessenberg
matrix H.```
Parameters

RIGHTV

```          RIGHTV is LOGICAL
= .TRUE. : compute right eigenvector;
= .FALSE.: compute left eigenvector.```

NOINIT

```          NOINIT is LOGICAL
= .TRUE. : no initial vector supplied in (VR,VI).
= .FALSE.: initial vector supplied in (VR,VI).```

N

```          N is INTEGER
The order of the matrix H.  N >= 0.```

H

```          H is REAL array, dimension (LDH,N)
The upper Hessenberg matrix H.```

LDH

```          LDH is INTEGER
The leading dimension of the array H.  LDH >= max(1,N).```

WR

`          WR is REAL`

WI

```          WI is REAL
The real and imaginary parts of the eigenvalue of H whose
corresponding right or left eigenvector is to be computed.```

VR

`          VR is REAL array, dimension (N)`

VI

```          VI is REAL array, dimension (N)
On entry, if NOINIT = .FALSE. and WI = 0.0, VR must contain
a real starting vector for inverse iteration using the real
eigenvalue WR; if NOINIT = .FALSE. and WI.ne.0.0, VR and VI
must contain the real and imaginary parts of a complex
starting vector for inverse iteration using the complex
eigenvalue (WR,WI); otherwise VR and VI need not be set.
On exit, if WI = 0.0 (real eigenvalue), VR contains the
computed real eigenvector; if WI.ne.0.0 (complex eigenvalue),
VR and VI contain the real and imaginary parts of the
computed complex eigenvector. The eigenvector is normalized
so that the component of largest magnitude has magnitude 1;
here the magnitude of a complex number (x,y) is taken to be
|x| + |y|.
VI is not referenced if WI = 0.0.```

B

`          B is REAL array, dimension (LDB,N)`

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= N+1.```

WORK

`          WORK is REAL array, dimension (N)`

EPS3

```          EPS3 is REAL
A small machine-dependent value which is used to perturb
close eigenvalues, and to replace zero pivots.```

SMLNUM

```          SMLNUM is REAL
A machine-dependent value close to the underflow threshold.```

BIGNUM

```          BIGNUM is REAL
A machine-dependent value close to the overflow threshold.```

INFO

```          INFO is INTEGER
= 0:  successful exit
= 1:  inverse iteration did not converge; VR is set to the
last iterate, and so is VI if WI.ne.0.0.```
Author

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Definition at line 170 of file slaein.f.

### subroutine zlaein (logical rightv, logical noinit, integer n, complex*16, dimension( ldh, * ) h, integer ldh, complex*16 w, complex*16, dimension( * ) v, complex*16, dimension( ldb, * ) b, integer ldb, double precision, dimension( * ) rwork, double precision eps3, double precision smlnum, integer info)

ZLAEIN computes a specified right or left eigenvector of an upper Hessenberg matrix by inverse iteration.

Purpose:

``` ZLAEIN uses inverse iteration to find a right or left eigenvector
corresponding to the eigenvalue W of a complex upper Hessenberg
matrix H.```
Parameters

RIGHTV

```          RIGHTV is LOGICAL
= .TRUE. : compute right eigenvector;
= .FALSE.: compute left eigenvector.```

NOINIT

```          NOINIT is LOGICAL
= .TRUE. : no initial vector supplied in V
= .FALSE.: initial vector supplied in V.```

N

```          N is INTEGER
The order of the matrix H.  N >= 0.```

H

```          H is COMPLEX*16 array, dimension (LDH,N)
The upper Hessenberg matrix H.```

LDH

```          LDH is INTEGER
The leading dimension of the array H.  LDH >= max(1,N).```

W

```          W is COMPLEX*16
The eigenvalue of H whose corresponding right or left
eigenvector is to be computed.```

V

```          V is COMPLEX*16 array, dimension (N)
On entry, if NOINIT = .FALSE., V must contain a starting
vector for inverse iteration; otherwise V need not be set.
On exit, V contains the computed eigenvector, normalized so
that the component of largest magnitude has magnitude 1; here
the magnitude of a complex number (x,y) is taken to be
|x| + |y|.```

B

`          B is COMPLEX*16 array, dimension (LDB,N)`

LDB

```          LDB is INTEGER
The leading dimension of the array B.  LDB >= max(1,N).```

RWORK

`          RWORK is DOUBLE PRECISION array, dimension (N)`

EPS3

```          EPS3 is DOUBLE PRECISION
A small machine-dependent value which is used to perturb
close eigenvalues, and to replace zero pivots.```

SMLNUM

```          SMLNUM is DOUBLE PRECISION
A machine-dependent value close to the underflow threshold.```

INFO

```          INFO is INTEGER
= 0:  successful exit
= 1:  inverse iteration did not converge; V is set to the
last iterate.```
Author

Univ. of Tennessee

Univ. of California Berkeley