laqr5#

Functions

void slaqr5(
    const INT  wantt,
    const INT  wantz,
    const INT  kacc22,
    const INT  n,
    const INT  ktop,
    const INT  kbot,
    const INT  nshfts,
          f32* sr,
          f32* si,
          f32* H,
    const INT  ldh,
    const INT  iloz,
    const INT  ihiz,
          f32* Z,
    const INT  ldz,
          f32* V,
    const INT  ldv,
          f32* U,
    const INT  ldu,
    const INT  nv,
          f32* WV,
    const INT  ldwv,
    const INT  nh,
          f32* WH,
    const INT  ldwh
);
void slaqr5(const INT wantt, const INT wantz, const INT kacc22, const INT n, const INT ktop, const INT kbot, const INT nshfts, f32 *sr, f32 *si, f32 *H, const INT ldh, const INT iloz, const INT ihiz, f32 *Z, const INT ldz, f32 *V, const INT ldv, f32 *U, const INT ldu, const INT nv, f32 *WV, const INT ldwv, const INT nh, f32 *WH, const INT ldwh)#

SLAQR5, called by SLAQR0, performs a single small-bulge multi-shift QR sweep.

Parameters

in
wantt

If nonzero, the quasi-triangular Schur factor is being computed.

in
wantz

If nonzero, the orthogonal Schur factor is being computed.

in
kacc22

Specifies the computation mode of far-from-diagonal orthogonal updates. = 0: Does not accumulate reflections and does not use matrix-matrix multiply. = 1 or 2: Accumulates reflections and uses matrix-matrix multiply.

in
n

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

in
ktop

First row/column of isolated diagonal block (0-based).

in
kbot

Last row/column of isolated diagonal block (0-based).

in
nshfts

Number of simultaneous shifts. Must be positive and even.

inout
sr

Double precision array, dimension (nshfts). Real parts of shifts.

inout
si

Double precision array, dimension (nshfts). Imaginary parts of shifts.

inout
H

Double precision array, dimension (ldh, n). The Hessenberg matrix.

in
ldh

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

in
iloz

First row of Z to which transformations must be applied (0-based).

in
ihiz

Last row of Z to which transformations must be applied (0-based).

inout
Z

Double precision array, dimension (ldz, n). The orthogonal matrix.

in
ldz

Leading dimension of Z. ldz >= n.

out
V

Double precision array, dimension (ldv, nshfts/2).

in
ldv

Leading dimension of V. ldv >= 3.

out
U

Double precision array, dimension (ldu, 2*nshfts).

in
ldu

Leading dimension of U. ldu >= 2*nshfts.

in
nv

Number of rows in WV available for workspace. nv >= 1.

out
WV

Double precision array, dimension (ldwv, 2*nshfts).

in
ldwv

Leading dimension of WV. ldwv >= nv.

in
nh

Number of columns in WH available for workspace. nh >= 1.

out
WH

Double precision array, dimension (ldwh, nh).

in
ldwh

Leading dimension of WH. ldwh >= 2*nshfts.

Functions

void dlaqr5(
    const INT  wantt,
    const INT  wantz,
    const INT  kacc22,
    const INT  n,
    const INT  ktop,
    const INT  kbot,
    const INT  nshfts,
          f64* sr,
          f64* si,
          f64* H,
    const INT  ldh,
    const INT  iloz,
    const INT  ihiz,
          f64* Z,
    const INT  ldz,
          f64* V,
    const INT  ldv,
          f64* U,
    const INT  ldu,
    const INT  nv,
          f64* WV,
    const INT  ldwv,
    const INT  nh,
          f64* WH,
    const INT  ldwh
);
void dlaqr5(const INT wantt, const INT wantz, const INT kacc22, const INT n, const INT ktop, const INT kbot, const INT nshfts, f64 *sr, f64 *si, f64 *H, const INT ldh, const INT iloz, const INT ihiz, f64 *Z, const INT ldz, f64 *V, const INT ldv, f64 *U, const INT ldu, const INT nv, f64 *WV, const INT ldwv, const INT nh, f64 *WH, const INT ldwh)#

DLAQR5, called by DLAQR0, performs a single small-bulge multi-shift QR sweep.

Parameters

in
wantt

If nonzero, the quasi-triangular Schur factor is being computed.

in
wantz

If nonzero, the orthogonal Schur factor is being computed.

in
kacc22

Specifies the computation mode of far-from-diagonal orthogonal updates. = 0: Does not accumulate reflections and does not use matrix-matrix multiply. = 1 or 2: Accumulates reflections and uses matrix-matrix multiply.

in
n

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

in
ktop

First row/column of isolated diagonal block (0-based).

in
kbot

Last row/column of isolated diagonal block (0-based).

in
nshfts

Number of simultaneous shifts. Must be positive and even.

inout
sr

Double precision array, dimension (nshfts). Real parts of shifts.

inout
si

Double precision array, dimension (nshfts). Imaginary parts of shifts.

inout
H

Double precision array, dimension (ldh, n). The Hessenberg matrix.

in
ldh

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

in
iloz

First row of Z to which transformations must be applied (0-based).

in
ihiz

Last row of Z to which transformations must be applied (0-based).

inout
Z

Double precision array, dimension (ldz, n). The orthogonal matrix.

in
ldz

Leading dimension of Z. ldz >= n.

out
V

Double precision array, dimension (ldv, nshfts/2).

in
ldv

Leading dimension of V. ldv >= 3.

out
U

Double precision array, dimension (ldu, 2*nshfts).

in
ldu

Leading dimension of U. ldu >= 2*nshfts.

in
nv

Number of rows in WV available for workspace. nv >= 1.

out
WV

Double precision array, dimension (ldwv, 2*nshfts).

in
ldwv

Leading dimension of WV. ldwv >= nv.

in
nh

Number of columns in WH available for workspace. nh >= 1.

out
WH

Double precision array, dimension (ldwh, nh).

in
ldwh

Leading dimension of WH. ldwh >= 2*nshfts.

Functions

void claqr5(
    const INT  wantt,
    const INT  wantz,
    const INT  kacc22,
    const INT  n,
    const INT  ktop,
    const INT  kbot,
    const INT  nshfts,
          c64* S,
          c64* H,
    const INT  ldh,
    const INT  iloz,
    const INT  ihiz,
          c64* Z,
    const INT  ldz,
          c64* V,
    const INT  ldv,
          c64* U,
    const INT  ldu,
    const INT  nv,
          c64* WV,
    const INT  ldwv,
    const INT  nh,
          c64* WH,
    const INT  ldwh
);
void claqr5(const INT wantt, const INT wantz, const INT kacc22, const INT n, const INT ktop, const INT kbot, const INT nshfts, c64 *S, c64 *H, const INT ldh, const INT iloz, const INT ihiz, c64 *Z, const INT ldz, c64 *V, const INT ldv, c64 *U, const INT ldu, const INT nv, c64 *WV, const INT ldwv, const INT nh, c64 *WH, const INT ldwh)#

CLAQR5, called by CLAQR0, performs a single small-bulge multi-shift QR sweep.

Parameters

in
wantt

If nonzero, the triangular Schur factor is being computed.

in
wantz

If nonzero, the unitary Schur factor is being computed.

in
kacc22

Specifies the computation mode of far-from-diagonal unitary updates (0, 1, or 2).

in
n

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

in
ktop

First row/column of isolated diagonal block (0-based).

in
kbot

Last row/column of isolated diagonal block (0-based).

in
nshfts

Number of simultaneous shifts. Must be positive and even.

inout
S

Complex array, dimension (nshfts). The shifts.

inout
H

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

in
ldh

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

in
iloz

First row of Z to which transformations must be applied (0-based).

in
ihiz

Last row of Z to which transformations must be applied (0-based).

inout
Z

Complex array, dimension (ldz, n). The unitary matrix.

in
ldz

Leading dimension of Z. ldz >= n.

out
V

Complex array, dimension (ldv, nshfts/2).

in
ldv

Leading dimension of V. ldv >= 3.

out
U

Complex array, dimension (ldu, 2*nshfts).

in
ldu

Leading dimension of U. ldu >= 2*nshfts.

in
nv

Number of rows in WV available for workspace. nv >= 1.

out
WV

Complex array, dimension (ldwv, 2*nshfts).

in
ldwv

Leading dimension of WV. ldwv >= nv.

in
nh

Number of columns in WH available for workspace. nh >= 1.

out
WH

Complex array, dimension (ldwh, nh).

in
ldwh

Leading dimension of WH. ldwh >= 2*nshfts.

Functions

void zlaqr5(
    const INT   wantt,
    const INT   wantz,
    const INT   kacc22,
    const INT   n,
    const INT   ktop,
    const INT   kbot,
    const INT   nshfts,
          c128* S,
          c128* H,
    const INT   ldh,
    const INT   iloz,
    const INT   ihiz,
          c128* Z,
    const INT   ldz,
          c128* V,
    const INT   ldv,
          c128* U,
    const INT   ldu,
    const INT   nv,
          c128* WV,
    const INT   ldwv,
    const INT   nh,
          c128* WH,
    const INT   ldwh
);
void zlaqr5(const INT wantt, const INT wantz, const INT kacc22, const INT n, const INT ktop, const INT kbot, const INT nshfts, c128 *S, c128 *H, const INT ldh, const INT iloz, const INT ihiz, c128 *Z, const INT ldz, c128 *V, const INT ldv, c128 *U, const INT ldu, const INT nv, c128 *WV, const INT ldwv, const INT nh, c128 *WH, const INT ldwh)#

ZLAQR5, called by ZLAQR0, performs a single small-bulge multi-shift QR sweep.

Parameters

in
wantt

If nonzero, the triangular Schur factor is being computed.

in
wantz

If nonzero, the unitary Schur factor is being computed.

in
kacc22

Specifies the computation mode of far-from-diagonal unitary updates (0, 1, or 2).

in
n

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

in
ktop

First row/column of isolated diagonal block (0-based).

in
kbot

Last row/column of isolated diagonal block (0-based).

in
nshfts

Number of simultaneous shifts. Must be positive and even.

inout
S

Complex array, dimension (nshfts). The shifts.

inout
H

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

in
ldh

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

in
iloz

First row of Z to which transformations must be applied (0-based).

in
ihiz

Last row of Z to which transformations must be applied (0-based).

inout
Z

Complex array, dimension (ldz, n). The unitary matrix.

in
ldz

Leading dimension of Z. ldz >= n.

out
V

Complex array, dimension (ldv, nshfts/2).

in
ldv

Leading dimension of V. ldv >= 3.

out
U

Complex array, dimension (ldu, 2*nshfts).

in
ldu

Leading dimension of U. ldu >= 2*nshfts.

in
nv

Number of rows in WV available for workspace. nv >= 1.

out
WV

Complex array, dimension (ldwv, 2*nshfts).

in
ldwv

Leading dimension of WV. ldwv >= nv.

in
nh

Number of columns in WH available for workspace. nh >= 1.

out
WH

Complex array, dimension (ldwh, nh).

in
ldwh

Leading dimension of WH. ldwh >= 2*nshfts.