laqz2#

Functions

void slaqz2(
    const INT           ilq,
    const INT           ilz,
    const INT           k,
    const INT           istartm,
    const INT           istopm,
    const INT           ihi,
          f32* restrict A,
    const INT           lda,
          f32* restrict B,
    const INT           ldb,
    const INT           nq,
    const INT           qstart,
          f32* restrict Q,
    const INT           ldq,
    const INT           nz,
    const INT           zstart,
          f32* restrict Z,
    const INT           ldz
);
void slaqz2(const INT ilq, const INT ilz, const INT k, const INT istartm, const INT istopm, const INT ihi, f32 *restrict A, const INT lda, f32 *restrict B, const INT ldb, const INT nq, const INT qstart, f32 *restrict Q, const INT ldq, const INT nz, const INT zstart, f32 *restrict Z, const INT ldz)#

SLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position.

Parameters

in
ilq

Determines whether or not to update Q.

in
ilz

Determines whether or not to update Z.

in
k

Index indicating the position of the bulge (0-based). On entry, the bulge is located in (A(k+1:k+2,k:k+1),B(k+1:k+2,k:k+1)). On exit, the bulge is located in (A(k+2:k+3,k+1:k+2),B(k+2:k+3,k+1:k+2)).

in
istartm

Start row for updates (0-based).

in
istopm

Stop column for updates (0-based).

in
ihi

Upper bound of active submatrix (0-based).

inout
A

Matrix A.

in
lda

Leading dimension of A.

inout
B

Matrix B.

in
ldb

Leading dimension of B.

in
nq

Order of matrix Q.

in
qstart

Start index of Q (0-based).

inout
Q

Matrix Q.

in
ldq

Leading dimension of Q.

in
nz

Order of matrix Z.

in
zstart

Start index of Z (0-based).

inout
Z

Matrix Z.

in
ldz

Leading dimension of Z.

Functions

void dlaqz2(
    const INT           ilq,
    const INT           ilz,
    const INT           k,
    const INT           istartm,
    const INT           istopm,
    const INT           ihi,
          f64* restrict A,
    const INT           lda,
          f64* restrict B,
    const INT           ldb,
    const INT           nq,
    const INT           qstart,
          f64* restrict Q,
    const INT           ldq,
    const INT           nz,
    const INT           zstart,
          f64* restrict Z,
    const INT           ldz
);
void dlaqz2(const INT ilq, const INT ilz, const INT k, const INT istartm, const INT istopm, const INT ihi, f64 *restrict A, const INT lda, f64 *restrict B, const INT ldb, const INT nq, const INT qstart, f64 *restrict Q, const INT ldq, const INT nz, const INT zstart, f64 *restrict Z, const INT ldz)#

DLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position.

Parameters

in
ilq

Determines whether or not to update Q.

in
ilz

Determines whether or not to update Z.

in
k

Index indicating the position of the bulge (0-based). On entry, the bulge is located in (A(k+1:k+2,k:k+1),B(k+1:k+2,k:k+1)). On exit, the bulge is located in (A(k+2:k+3,k+1:k+2),B(k+2:k+3,k+1:k+2)).

in
istartm

Start row for updates (0-based).

in
istopm

Stop column for updates (0-based).

in
ihi

Upper bound of active submatrix (0-based).

inout
A

Matrix A.

in
lda

Leading dimension of A.

inout
B

Matrix B.

in
ldb

Leading dimension of B.

in
nq

Order of matrix Q.

in
qstart

Start index of Q (0-based).

inout
Q

Matrix Q.

in
ldq

Leading dimension of Q.

in
nz

Order of matrix Z.

in
zstart

Start index of Z (0-based).

inout
Z

Matrix Z.

in
ldz

Leading dimension of Z.

Functions

void claqz2(
    const INT           ilschur,
    const INT           ilq,
    const INT           ilz,
    const INT           n,
    const INT           ilo,
    const INT           ihi,
    const INT           nw,
          c64* restrict A,
    const INT           lda,
          c64* restrict B,
    const INT           ldb,
          c64* restrict Q,
    const INT           ldq,
          c64* restrict Z,
    const INT           ldz,
          INT*          ns,
          INT*          nd,
          c64* restrict alpha,
          c64* restrict beta,
          c64* restrict QC,
    const INT           ldqc,
          c64* restrict ZC,
    const INT           ldzc,
          c64* restrict work,
    const INT           lwork,
          f32* restrict rwork,
    const INT           rec,
          INT*          info
);
void claqz2(const INT ilschur, const INT ilq, const INT ilz, const INT n, const INT ilo, const INT ihi, const INT nw, c64 *restrict A, const INT lda, c64 *restrict B, const INT ldb, c64 *restrict Q, const INT ldq, c64 *restrict Z, const INT ldz, INT *ns, INT *nd, c64 *restrict alpha, c64 *restrict beta, c64 *restrict QC, const INT ldqc, c64 *restrict ZC, const INT ldzc, c64 *restrict work, const INT lwork, f32 *restrict rwork, const INT rec, INT *info)#

CLAQZ2 performs AED.

Parameters

in
ilschur

Determines whether or not to update the full Schur form.

in
ilq

Determines whether or not to update the matrix Q.

in
ilz

Determines whether or not to update the matrix Z.

in
n

The order of the matrices A, B, Q, and Z. n >= 0.

in
ilo

0-based lower bound of active submatrix.

in
ihi

0-based upper bound of active submatrix.

in
nw

The desired size of the deflation window.

inout
A

Complex array, dimension (lda, n).

in
lda

The leading dimension of A. lda >= max(1, n).

inout
B

Complex array, dimension (ldb, n).

in
ldb

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

inout
Q

Complex array, dimension (ldq, n).

in
ldq

The leading dimension of Q.

inout
Z

Complex array, dimension (ldz, n).

in
ldz

The leading dimension of Z.

out
ns

The number of unconverged eigenvalues available as shifts.

out
nd

The number of converged eigenvalues found.

out
alpha

Complex array, dimension (n). Eigenvalue numerators.

out
beta

Complex array, dimension (n). Eigenvalue denominators.

inout
QC

Complex array, dimension (ldqc, nw).

in
ldqc

The leading dimension of QC.

inout
ZC

Complex array, dimension (ldzc, nw).

in
ldzc

The leading dimension of ZC.

out
work

Complex array, dimension (max(1, lwork)). On exit, if info >= 0, work[0] returns the optimal lwork.

in
lwork

The dimension of the array work. If lwork = -1, workspace query.

out
rwork

Single precision array, dimension (n).

in
rec

Current recursion level. Should be set to 0 on first call.

out
info

= 0: successful exit. < 0: if info = -i, the i-th argument had an illegal value.

Functions

void zlaqz2(
    const INT            ilschur,
    const INT            ilq,
    const INT            ilz,
    const INT            n,
    const INT            ilo,
    const INT            ihi,
    const INT            nw,
          c128* restrict A,
    const INT            lda,
          c128* restrict B,
    const INT            ldb,
          c128* restrict Q,
    const INT            ldq,
          c128* restrict Z,
    const INT            ldz,
          INT*           ns,
          INT*           nd,
          c128* restrict alpha,
          c128* restrict beta,
          c128* restrict QC,
    const INT            ldqc,
          c128* restrict ZC,
    const INT            ldzc,
          c128* restrict work,
    const INT            lwork,
          f64*  restrict rwork,
    const INT            rec,
          INT*           info
);
void zlaqz2(const INT ilschur, const INT ilq, const INT ilz, const INT n, const INT ilo, const INT ihi, const INT nw, c128 *restrict A, const INT lda, c128 *restrict B, const INT ldb, c128 *restrict Q, const INT ldq, c128 *restrict Z, const INT ldz, INT *ns, INT *nd, c128 *restrict alpha, c128 *restrict beta, c128 *restrict QC, const INT ldqc, c128 *restrict ZC, const INT ldzc, c128 *restrict work, const INT lwork, f64 *restrict rwork, const INT rec, INT *info)#

ZLAQZ2 performs AED.

Parameters

in
ilschur

Determines whether or not to update the full Schur form.

in
ilq

Determines whether or not to update the matrix Q.

in
ilz

Determines whether or not to update the matrix Z.

in
n

The order of the matrices A, B, Q, and Z. n >= 0.

in
ilo

0-based lower bound of active submatrix.

in
ihi

0-based upper bound of active submatrix.

in
nw

The desired size of the deflation window.

inout
A

Complex array, dimension (lda, n).

in
lda

The leading dimension of A. lda >= max(1, n).

inout
B

Complex array, dimension (ldb, n).

in
ldb

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

inout
Q

Complex array, dimension (ldq, n).

in
ldq

The leading dimension of Q.

inout
Z

Complex array, dimension (ldz, n).

in
ldz

The leading dimension of Z.

out
ns

The number of unconverged eigenvalues available as shifts.

out
nd

The number of converged eigenvalues found.

out
alpha

Complex array, dimension (n). Eigenvalue numerators.

out
beta

Complex array, dimension (n). Eigenvalue denominators.

inout
QC

Complex array, dimension (ldqc, nw).

in
ldqc

The leading dimension of QC.

inout
ZC

Complex array, dimension (ldzc, nw).

in
ldzc

The leading dimension of ZC.

out
work

Complex array, dimension (max(1, lwork)). On exit, if info >= 0, work[0] returns the optimal lwork.

in
lwork

The dimension of the array work. If lwork = -1, workspace query.

out
rwork

Double precision array, dimension (n).

in
rec

Current recursion level. Should be set to 0 on first call.

out
info

= 0: successful exit. < 0: if info = -i, the i-th argument had an illegal value.