laqz3#

Functions

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

SLAQZ3 performs AED (Aggressive Early Deflation).

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

Lower bound of active submatrix (0-based).

in
ihi

Upper bound of active submatrix (0-based).

in
nw

The desired size of the deflation window.

inout
A

Matrix A.

in
lda

Leading dimension of A.

inout
B

Matrix B.

in
ldb

Leading dimension of B.

inout
Q

Matrix Q.

in
ldq

Leading dimension of Q.

inout
Z

Matrix Z.

in
ldz

Leading dimension of Z.

out
ns

The number of unconverged eigenvalues available as shifts.

out
nd

The number of converged eigenvalues found.

out
alphar

Real parts of eigenvalues.

out
alphai

Imaginary parts of eigenvalues.

out
beta

Scale factors for eigenvalues.

inout
QC

Workspace for accumulated Q transformations.

in
ldqc

Leading dimension of QC.

inout
ZC

Workspace for accumulated Z transformations.

in
ldzc

Leading dimension of ZC.

out
work

Workspace array.

in
lwork

Dimension of workspace. If lwork = -1, workspace query.

in
rec

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

out
info

  • = 0: successful exit, < 0: illegal argument.

Functions

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

DLAQZ3 performs AED (Aggressive Early Deflation).

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

Lower bound of active submatrix (0-based).

in
ihi

Upper bound of active submatrix (0-based).

in
nw

The desired size of the deflation window.

inout
A

Matrix A.

in
lda

Leading dimension of A.

inout
B

Matrix B.

in
ldb

Leading dimension of B.

inout
Q

Matrix Q.

in
ldq

Leading dimension of Q.

inout
Z

Matrix Z.

in
ldz

Leading dimension of Z.

out
ns

The number of unconverged eigenvalues available as shifts.

out
nd

The number of converged eigenvalues found.

out
alphar

Real parts of eigenvalues.

out
alphai

Imaginary parts of eigenvalues.

out
beta

Scale factors for eigenvalues.

inout
QC

Workspace for accumulated Q transformations.

in
ldqc

Leading dimension of QC.

inout
ZC

Workspace for accumulated Z transformations.

in
ldzc

Leading dimension of ZC.

out
work

Workspace array.

in
lwork

Dimension of workspace. If lwork = -1, workspace query.

in
rec

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

out
info

  • = 0: successful exit, < 0: illegal argument.

Functions

void claqz3(
    const INT           ilschur,
    const INT           ilq,
    const INT           ilz,
    const INT           n,
    const INT           ilo,
    const INT           ihi,
    const INT           nshifts,
    const INT           nblock_desired,
          c64* restrict alpha,
          c64* restrict beta,
          c64* restrict A,
    const INT           lda,
          c64* restrict B,
    const INT           ldb,
          c64* restrict Q,
    const INT           ldq,
          c64* restrict Z,
    const INT           ldz,
          c64* restrict QC,
    const INT           ldqc,
          c64* restrict ZC,
    const INT           ldzc,
          c64* restrict work,
    const INT           lwork,
          INT*          info
);
void claqz3(const INT ilschur, const INT ilq, const INT ilz, const INT n, const INT ilo, const INT ihi, const INT nshifts, const INT nblock_desired, c64 *restrict alpha, c64 *restrict beta, c64 *restrict A, const INT lda, c64 *restrict B, const INT ldb, c64 *restrict Q, const INT ldq, c64 *restrict Z, const INT ldz, c64 *restrict QC, const INT ldqc, c64 *restrict ZC, const INT ldzc, c64 *restrict work, const INT lwork, INT *info)#

CLAQZ3 executes a single multishift QZ sweep.

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
nshifts

The desired number of shifts to use.

in
nblock_desired

The desired size of the computational windows.

inout
alpha

Complex array. Alpha parts of the shifts.

inout
beta

Complex array. Beta parts of the shifts.

inout
A

Complex array, dimension (lda, n).

in
lda

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

inout
B

Complex array, dimension (ldb, n).

in
ldb

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

inout
Q

Complex array, dimension (ldq, n).

in
ldq

Leading dimension of Q.

inout
Z

Complex array, dimension (ldz, n).

in
ldz

Leading dimension of Z.

inout
QC

Complex array, dimension (ldqc, nblock_desired).

in
ldqc

Leading dimension of QC.

inout
ZC

Complex array, dimension (ldzc, nblock_desired).

in
ldzc

Leading dimension of ZC.

out
work

Complex array, dimension (max(1, lwork)).

in
lwork

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

out
info

= 0: successful exit.

Functions

void zlaqz3(
    const INT            ilschur,
    const INT            ilq,
    const INT            ilz,
    const INT            n,
    const INT            ilo,
    const INT            ihi,
    const INT            nshifts,
    const INT            nblock_desired,
          c128* restrict alpha,
          c128* restrict beta,
          c128* restrict A,
    const INT            lda,
          c128* restrict B,
    const INT            ldb,
          c128* restrict Q,
    const INT            ldq,
          c128* restrict Z,
    const INT            ldz,
          c128* restrict QC,
    const INT            ldqc,
          c128* restrict ZC,
    const INT            ldzc,
          c128* restrict work,
    const INT            lwork,
          INT*           info
);
void zlaqz3(const INT ilschur, const INT ilq, const INT ilz, const INT n, const INT ilo, const INT ihi, const INT nshifts, const INT nblock_desired, c128 *restrict alpha, c128 *restrict beta, c128 *restrict A, const INT lda, c128 *restrict B, const INT ldb, c128 *restrict Q, const INT ldq, c128 *restrict Z, const INT ldz, c128 *restrict QC, const INT ldqc, c128 *restrict ZC, const INT ldzc, c128 *restrict work, const INT lwork, INT *info)#

ZLAQZ3 executes a single multishift QZ sweep.

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
nshifts

The desired number of shifts to use.

in
nblock_desired

The desired size of the computational windows.

inout
alpha

Complex array. Alpha parts of the shifts.

inout
beta

Complex array. Beta parts of the shifts.

inout
A

Complex array, dimension (lda, n).

in
lda

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

inout
B

Complex array, dimension (ldb, n).

in
ldb

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

inout
Q

Complex array, dimension (ldq, n).

in
ldq

Leading dimension of Q.

inout
Z

Complex array, dimension (ldz, n).

in
ldz

Leading dimension of Z.

inout
QC

Complex array, dimension (ldqc, nblock_desired).

in
ldqc

Leading dimension of QC.

inout
ZC

Complex array, dimension (ldzc, nblock_desired).

in
ldzc

Leading dimension of ZC.

out
work

Complex array, dimension (max(1, lwork)).

in
lwork

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

out
info

= 0: successful exit.