laein#

Functions

void slaein(
    const INT           rightv,
    const INT           noinit,
    const INT           n,
    const f32* restrict H,
    const INT           ldh,
    const f32           wr,
    const f32           wi,
          f32* restrict vr,
          f32* restrict vi,
          f32* restrict B,
    const INT           ldb,
          f32* restrict work,
    const f32           eps3,
    const f32           smlnum,
    const f32           bignum,
          INT*          info
);
void slaein(const INT rightv, const INT noinit, const INT n, const f32 *restrict H, const INT ldh, const f32 wr, const f32 wi, f32 *restrict vr, f32 *restrict vi, f32 *restrict B, const INT ldb, f32 *restrict work, const f32 eps3, const f32 smlnum, const f32 bignum, INT *info)#

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

in
rightv

If nonzero, compute right eigenvector; if zero, compute left eigenvector.

in
noinit

If nonzero, no initial vector supplied in (vr,vi); if zero, initial vector supplied in (vr,vi).

in
n

The order of the matrix H (n >= 0).

in
H

Upper Hessenberg matrix H. Array of dimension (ldh, n).

in
ldh

The leading dimension of H (ldh >= max(1,n)).

in
wr

The real part of the eigenvalue.

in
wi

The imaginary part of the eigenvalue.

inout
vr

Real part of eigenvector. Array of dimension n. On exit, if wi = 0.0, vr contains the computed real eigenvector; if wi != 0.0, vr contains the real part of the computed complex eigenvector.

inout
vi

Imaginary part of eigenvector. Array of dimension n. Not referenced if wi = 0.0.

out
B

Workspace array of dimension (ldb, n).

in
ldb

The leading dimension of B (ldb >= n+1).

out
work

Workspace array of dimension n.

in
eps3

A small machine-dependent value used to perturb close eigenvalues and replace zero pivots.

in
smlnum

A machine-dependent value close to underflow threshold.

in
bignum

A machine-dependent value close to overflow threshold.

out
info

  • = 0: successful exit

  • = 1: inverse iteration did not converge; vr is set to the last iterate.

Functions

void dlaein(
    const INT           rightv,
    const INT           noinit,
    const INT           n,
    const f64* restrict H,
    const INT           ldh,
    const f64           wr,
    const f64           wi,
          f64* restrict vr,
          f64* restrict vi,
          f64* restrict B,
    const INT           ldb,
          f64* restrict work,
    const f64           eps3,
    const f64           smlnum,
    const f64           bignum,
          INT*          info
);
void dlaein(const INT rightv, const INT noinit, const INT n, const f64 *restrict H, const INT ldh, const f64 wr, const f64 wi, f64 *restrict vr, f64 *restrict vi, f64 *restrict B, const INT ldb, f64 *restrict work, const f64 eps3, const f64 smlnum, const f64 bignum, INT *info)#

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

in
rightv

If nonzero, compute right eigenvector; if zero, compute left eigenvector.

in
noinit

If nonzero, no initial vector supplied in (vr,vi); if zero, initial vector supplied in (vr,vi).

in
n

The order of the matrix H (n >= 0).

in
H

Upper Hessenberg matrix H. Array of dimension (ldh, n).

in
ldh

The leading dimension of H (ldh >= max(1,n)).

in
wr

The real part of the eigenvalue.

in
wi

The imaginary part of the eigenvalue.

inout
vr

Real part of eigenvector. Array of dimension n. On exit, if wi = 0.0, vr contains the computed real eigenvector; if wi != 0.0, vr contains the real part of the computed complex eigenvector.

inout
vi

Imaginary part of eigenvector. Array of dimension n. Not referenced if wi = 0.0.

out
B

Workspace array of dimension (ldb, n).

in
ldb

The leading dimension of B (ldb >= n+1).

out
work

Workspace array of dimension n.

in
eps3

A small machine-dependent value used to perturb close eigenvalues and replace zero pivots.

in
smlnum

A machine-dependent value close to underflow threshold.

in
bignum

A machine-dependent value close to overflow threshold.

out
info

  • = 0: successful exit

  • = 1: inverse iteration did not converge; vr is set to the last iterate.

Functions

void claein(
    const INT           rightv,
    const INT           noinit,
    const INT           n,
    const c64* restrict H,
    const INT           ldh,
    const c64           w,
          c64* restrict V,
          c64* restrict B,
    const INT           ldb,
          f32* restrict rwork,
    const f32           eps3,
    const f32           smlnum,
          INT*          info
);
void claein(const INT rightv, const INT noinit, const INT n, const c64 *restrict H, const INT ldh, const c64 w, c64 *restrict V, c64 *restrict B, const INT ldb, f32 *restrict rwork, const f32 eps3, const f32 smlnum, INT *info)#

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

Parameters

in
rightv

If nonzero, compute right eigenvector; if zero, compute left eigenvector.

in
noinit

If nonzero, no initial vector supplied in V; if zero, initial vector supplied in V.

in
n

The order of the matrix H. N >= 0.

in
H

Complex array, dimension (ldh, n). The upper Hessenberg matrix H.

in
ldh

The leading dimension of H. ldh >= max(1,n).

in
w

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

inout
V

Complex array, dimension (n). On entry, if noinit = 0, 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|.

out
B

Complex array, dimension (ldb, n).

in
ldb

The leading dimension of B. ldb >= max(1,n).

out
rwork

Single precision array, dimension (n).

in
eps3

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

in
smlnum

A machine-dependent value close to the underflow threshold.

out
info

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

Functions

void zlaein(
    const INT            rightv,
    const INT            noinit,
    const INT            n,
    const c128* restrict H,
    const INT            ldh,
    const c128           w,
          c128* restrict V,
          c128* restrict B,
    const INT            ldb,
          f64*  restrict rwork,
    const f64            eps3,
    const f64            smlnum,
          INT*           info
);
void zlaein(const INT rightv, const INT noinit, const INT n, const c128 *restrict H, const INT ldh, const c128 w, c128 *restrict V, c128 *restrict B, const INT ldb, f64 *restrict rwork, const f64 eps3, const f64 smlnum, INT *info)#

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

Parameters

in
rightv

If nonzero, compute right eigenvector; if zero, compute left eigenvector.

in
noinit

If nonzero, no initial vector supplied in V; if zero, initial vector supplied in V.

in
n

The order of the matrix H. N >= 0.

in
H

Complex array, dimension (ldh, n). The upper Hessenberg matrix H.

in
ldh

The leading dimension of H. ldh >= max(1,n).

in
w

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

inout
V

Complex array, dimension (n). On entry, if noinit = 0, 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|.

out
B

Complex array, dimension (ldb, n).

in
ldb

The leading dimension of B. ldb >= max(1,n).

out
rwork

Double precision array, dimension (n).

in
eps3

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

in
smlnum

A machine-dependent value close to the underflow threshold.

out
info

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