laqr1#

Functions

void slaqr1(
    const INT  n,
    const f32* H,
    const INT  ldh,
    const f32  sr1,
    const f32  si1,
    const f32  sr2,
    const f32  si2,
          f32* v
);
void slaqr1(const INT n, const f32 *H, const INT ldh, const f32 sr1, const f32 si1, const f32 sr2, const f32 si2, f32 *v)#

Given a 2-by-2 or 3-by-3 matrix H, SLAQR1 sets v to a scalar multiple of the first column of the product.

K = (H - (sr1 + i*si1)*I)*(H - (sr2 + i*si2)*I)

scaling to avoid overflows and most underflows. It is assumed that either

1) sr1 = sr2 and si1 = -si2 or 2) si1 = si2 = 0.

This is useful for starting double implicit shift bulges in the QR algorithm.

Parameters

in
n

Order of the matrix H. n must be either 2 or 3.

in
H

Double precision array, dimension (ldh, n). The 2-by-2 or 3-by-3 matrix H.

in
ldh

Leading dimension of H. ldh >= n.

in
sr1

Real part of first shift.

in
si1

Imaginary part of first shift.

in
sr2

Real part of second shift.

in
si2

Imaginary part of second shift.

out
v

Double precision array, dimension (n). A scalar multiple of the first column of the matrix K.

Functions

void dlaqr1(
    const INT  n,
    const f64* H,
    const INT  ldh,
    const f64  sr1,
    const f64  si1,
    const f64  sr2,
    const f64  si2,
          f64* v
);
void dlaqr1(const INT n, const f64 *H, const INT ldh, const f64 sr1, const f64 si1, const f64 sr2, const f64 si2, f64 *v)#

Given a 2-by-2 or 3-by-3 matrix H, DLAQR1 sets v to a scalar multiple of the first column of the product.

K = (H - (sr1 + i*si1)*I)*(H - (sr2 + i*si2)*I)

scaling to avoid overflows and most underflows. It is assumed that either

1) sr1 = sr2 and si1 = -si2 or 2) si1 = si2 = 0.

This is useful for starting f64 implicit shift bulges in the QR algorithm.

Parameters

in
n

Order of the matrix H. n must be either 2 or 3.

in
H

Double precision array, dimension (ldh, n). The 2-by-2 or 3-by-3 matrix H.

in
ldh

Leading dimension of H. ldh >= n.

in
sr1

Real part of first shift.

in
si1

Imaginary part of first shift.

in
sr2

Real part of second shift.

in
si2

Imaginary part of second shift.

out
v

Double precision array, dimension (n). A scalar multiple of the first column of the matrix K.

Functions

void claqr1(
    const INT  n,
    const c64* H,
    const INT  ldh,
    const c64  s1,
    const c64  s2,
          c64* v
);
void claqr1(const INT n, const c64 *H, const INT ldh, const c64 s1, const c64 s2, c64 *v)#

Given a 2-by-2 or 3-by-3 matrix H, CLAQR1 sets v to a scalar multiple of the first column of the product.

K = (H - s1*I)*(H - s2*I)

scaling to avoid overflows and most underflows.

This is useful for starting f32 implicit shift bulges in the QR algorithm.

Parameters

in
n

Order of the matrix H. n must be either 2 or 3.

in
H

Complex array, dimension (ldh, n). The 2-by-2 or 3-by-3 matrix H.

in
ldh

Leading dimension of H. ldh >= n.

in
s1

First shift.

in
s2

Second shift.

out
v

Complex array, dimension (n). A scalar multiple of the first column of the matrix K.

Functions

void zlaqr1(
    const INT   n,
    const c128* H,
    const INT   ldh,
    const c128  s1,
    const c128  s2,
          c128* v
);
void zlaqr1(const INT n, const c128 *H, const INT ldh, const c128 s1, const c128 s2, c128 *v)#

Given a 2-by-2 or 3-by-3 matrix H, ZLAQR1 sets v to a scalar multiple of the first column of the product.

K = (H - s1*I)*(H - s2*I)

scaling to avoid overflows and most underflows.

This is useful for starting f64 implicit shift bulges in the QR algorithm.

Parameters

in
n

Order of the matrix H. n must be either 2 or 3.

in
H

Complex array, dimension (ldh, n). The 2-by-2 or 3-by-3 matrix H.

in
ldh

Leading dimension of H. ldh >= n.

in
s1

First shift.

in
s2

Second shift.

out
v

Complex array, dimension (n). A scalar multiple of the first column of the matrix K.