laqr0#

Functions

void slaqr0(
    const INT  wantt,
    const INT  wantz,
    const INT  n,
    const INT  ilo,
    const INT  ihi,
          f32* H,
    const INT  ldh,
          f32* wr,
          f32* wi,
    const INT  iloz,
    const INT  ihiz,
          f32* Z,
    const INT  ldz,
          f32* work,
    const INT  lwork,
          INT* info
);
void slaqr0(const INT wantt, const INT wantz, const INT n, const INT ilo, const INT ihi, f32 *H, const INT ldh, f32 *wr, f32 *wi, const INT iloz, const INT ihiz, f32 *Z, const INT ldz, f32 *work, const INT lwork, INT *info)#

SLAQR0 computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z^T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors.

Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q^T = (QZ)*T*(QZ)^T.

SLAQR0 is identical to SLAQR4 except that it calls SLAQR3 instead of SLAQR2.

Parameters

in
wantt

If nonzero, the full Schur form T is required. If zero, only eigenvalues are required.

in
wantz

If nonzero, the matrix of Schur vectors Z is required. If zero, Schur vectors are not required.

in
n

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

in
ilo

First index of isolated block (0-based).

in
ihi

Last index of isolated block (0-based). It is assumed that H is already upper triangular in rows and columns 0:ilo-1 and ihi+1:n-1.

inout
H

Double precision array, dimension (ldh, n). On entry, the upper Hessenberg matrix H. On exit, if info = 0 and wantt is nonzero, then H contains the upper quasi-triangular matrix T from the Schur decomposition (the Schur form).

in
ldh

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

out
wr

Double precision array, dimension (n). Real parts of the computed eigenvalues.

out
wi

Double precision array, dimension (n). Imaginary parts of the computed eigenvalues.

in
iloz

First row of Z to update (0-based).

in
ihiz

Last row of Z to update (0-based).

inout
Z

Double precision array, dimension (ldz, n). If wantz is nonzero, Z is updated with the orthogonal Schur factor.

in
ldz

Leading dimension of Z. ldz >= 1; if wantz, ldz >= ihiz+1.

out
work

Double precision array, dimension (lwork).

in
lwork

Dimension of work array. lwork >= max(1, n). If lwork = -1, workspace query is assumed.

out
info

  • = 0: successful exit

  • > 0: if info = i, SLAQR0 failed to compute all of the eigenvalues. Elements ilo:info contain those eigenvalues which have been successfully computed.

Functions

void dlaqr0(
    const INT  wantt,
    const INT  wantz,
    const INT  n,
    const INT  ilo,
    const INT  ihi,
          f64* H,
    const INT  ldh,
          f64* wr,
          f64* wi,
    const INT  iloz,
    const INT  ihiz,
          f64* Z,
    const INT  ldz,
          f64* work,
    const INT  lwork,
          INT* info
);
void dlaqr0(const INT wantt, const INT wantz, const INT n, const INT ilo, const INT ihi, f64 *H, const INT ldh, f64 *wr, f64 *wi, const INT iloz, const INT ihiz, f64 *Z, const INT ldz, f64 *work, const INT lwork, INT *info)#

DLAQR0 computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z^T, where T is an upper quasi-triangular matrix (the Schur form), and Z is the orthogonal matrix of Schur vectors.

Optionally Z may be postmultiplied into an input orthogonal matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the orthogonal matrix Q: A = Q*H*Q^T = (QZ)*T*(QZ)^T.

DLAQR0 is identical to DLAQR4 except that it calls DLAQR3 instead of DLAQR2.

Parameters

in
wantt

If nonzero, the full Schur form T is required. If zero, only eigenvalues are required.

in
wantz

If nonzero, the matrix of Schur vectors Z is required. If zero, Schur vectors are not required.

in
n

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

in
ilo

First index of isolated block (0-based).

in
ihi

Last index of isolated block (0-based). It is assumed that H is already upper triangular in rows and columns 0:ilo-1 and ihi+1:n-1.

inout
H

Double precision array, dimension (ldh, n). On entry, the upper Hessenberg matrix H. On exit, if info = 0 and wantt is nonzero, then H contains the upper quasi-triangular matrix T from the Schur decomposition (the Schur form).

in
ldh

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

out
wr

Double precision array, dimension (n). Real parts of the computed eigenvalues.

out
wi

Double precision array, dimension (n). Imaginary parts of the computed eigenvalues.

in
iloz

First row of Z to update (0-based).

in
ihiz

Last row of Z to update (0-based).

inout
Z

Double precision array, dimension (ldz, n). If wantz is nonzero, Z is updated with the orthogonal Schur factor.

in
ldz

Leading dimension of Z. ldz >= 1; if wantz, ldz >= ihiz+1.

out
work

Double precision array, dimension (lwork).

in
lwork

Dimension of work array. lwork >= max(1, n). If lwork = -1, workspace query is assumed.

out
info

  • = 0: successful exit

  • > 0: if info = i, DLAQR0 failed to compute all of the eigenvalues. Elements ilo:info contain those eigenvalues which have been successfully computed.

Functions

void claqr0(
    const INT  wantt,
    const INT  wantz,
    const INT  n,
    const INT  ilo,
    const INT  ihi,
          c64* H,
    const INT  ldh,
          c64* W,
    const INT  iloz,
    const INT  ihiz,
          c64* Z,
    const INT  ldz,
          c64* work,
    const INT  lwork,
          INT* info
);
void claqr0(const INT wantt, const INT wantz, const INT n, const INT ilo, const INT ihi, c64 *H, const INT ldh, c64 *W, const INT iloz, const INT ihiz, c64 *Z, const INT ldz, c64 *work, const INT lwork, INT *info)#

CLAQR0 computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z^H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors.

Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q^H = (QZ)*T*(QZ)^H.

CLAQR0 is identical to CLAQR4 except that it calls CLAQR3 instead of CLAQR2.

Parameters

in
wantt

If nonzero, the full Schur form T is required.

in
wantz

If nonzero, the matrix of Schur vectors Z is required.

in
n

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

in
ilo

First index of isolated block (0-based).

in
ihi

Last index of isolated block (0-based).

inout
H

Complex array, dimension (ldh, n).

in
ldh

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

out
W

Complex array, dimension (n). The computed eigenvalues.

in
iloz

First row of Z to update (0-based).

in
ihiz

Last row of Z to update (0-based).

inout
Z

Complex array, dimension (ldz, n).

in
ldz

Leading dimension of Z.

out
work

Complex array, dimension (lwork).

in
lwork

Dimension of work array. If lwork = -1, workspace query is assumed.

out
info

= 0: successful exit. > 0: if info = i (1-based), CLAQR0 failed to compute all eigenvalues.

Functions

void zlaqr0(
    const INT   wantt,
    const INT   wantz,
    const INT   n,
    const INT   ilo,
    const INT   ihi,
          c128* H,
    const INT   ldh,
          c128* W,
    const INT   iloz,
    const INT   ihiz,
          c128* Z,
    const INT   ldz,
          c128* work,
    const INT   lwork,
          INT*  info
);
void zlaqr0(const INT wantt, const INT wantz, const INT n, const INT ilo, const INT ihi, c128 *H, const INT ldh, c128 *W, const INT iloz, const INT ihiz, c128 *Z, const INT ldz, c128 *work, const INT lwork, INT *info)#

ZLAQR0 computes the eigenvalues of a Hessenberg matrix H and, optionally, the matrices T and Z from the Schur decomposition H = Z T Z^H, where T is an upper triangular matrix (the Schur form), and Z is the unitary matrix of Schur vectors.

Optionally Z may be postmultiplied into an input unitary matrix Q so that this routine can give the Schur factorization of a matrix A which has been reduced to the Hessenberg form H by the unitary matrix Q: A = Q*H*Q^H = (QZ)*T*(QZ)^H.

ZLAQR0 is identical to ZLAQR4 except that it calls ZLAQR3 instead of ZLAQR2.

Parameters

in
wantt

If nonzero, the full Schur form T is required.

in
wantz

If nonzero, the matrix of Schur vectors Z is required.

in
n

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

in
ilo

First index of isolated block (0-based).

in
ihi

Last index of isolated block (0-based).

inout
H

Complex array, dimension (ldh, n).

in
ldh

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

out
W

Complex array, dimension (n). The computed eigenvalues.

in
iloz

First row of Z to update (0-based).

in
ihiz

Last row of Z to update (0-based).

inout
Z

Complex array, dimension (ldz, n).

in
ldz

Leading dimension of Z.

out
work

Complex array, dimension (lwork).

in
lwork

Dimension of work array. If lwork = -1, workspace query is assumed.

out
info

= 0: successful exit. > 0: if info = i (1-based), ZLAQR0 failed to compute all eigenvalues.