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)#
SLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position.
Parameters
inilqDetermines whether or not to update Q.
inilzDetermines whether or not to update Z.
inkIndex 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)).
inistartmStart row for updates (0-based).
inistopmStop column for updates (0-based).
inihiUpper bound of active submatrix (0-based).
inoutAMatrix A.
inldaLeading dimension of A.
inoutBMatrix B.
inldbLeading dimension of B.
innqOrder of matrix Q.
inqstartStart index of Q (0-based).
inoutQMatrix Q.
inldqLeading dimension of Q.
innzOrder of matrix Z.
inzstartStart index of Z (0-based).
inoutZMatrix Z.
inldzLeading dimension of Z.
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
);
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)#
DLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position.
Parameters
inilqDetermines whether or not to update Q.
inilzDetermines whether or not to update Z.
inkIndex 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)).
inistartmStart row for updates (0-based).
inistopmStop column for updates (0-based).
inihiUpper bound of active submatrix (0-based).
inoutAMatrix A.
inldaLeading dimension of A.
inoutBMatrix B.
inldbLeading dimension of B.
innqOrder of matrix Q.
inqstartStart index of Q (0-based).
inoutQMatrix Q.
inldqLeading dimension of Q.
innzOrder of matrix Z.
inzstartStart index of Z (0-based).
inoutZMatrix Z.
inldzLeading dimension of Z.
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
);
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)#
CLAQZ2 performs AED.
Parameters
inilschurDetermines whether or not to update the full Schur form.
inilqDetermines whether or not to update the matrix Q.
inilzDetermines whether or not to update the matrix Z.
innThe order of the matrices A, B, Q, and Z. n >= 0.
inilo0-based lower bound of active submatrix.
inihi0-based upper bound of active submatrix.
innwThe desired size of the deflation window.
inoutAComplex array, dimension (lda, n).
inldaThe leading dimension of A. lda >= max(1, n).
inoutBComplex array, dimension (ldb, n).
inldbThe leading dimension of B. ldb >= max(1, n).
inoutQComplex array, dimension (ldq, n).
inldqThe leading dimension of Q.
inoutZComplex array, dimension (ldz, n).
inldzThe leading dimension of Z.
outnsThe number of unconverged eigenvalues available as shifts.
outndThe number of converged eigenvalues found.
outalphaComplex array, dimension (n). Eigenvalue numerators.
outbetaComplex array, dimension (n). Eigenvalue denominators.
inoutQCComplex array, dimension (ldqc, nw).
inldqcThe leading dimension of QC.
inoutZCComplex array, dimension (ldzc, nw).
inldzcThe leading dimension of ZC.
outworkComplex array, dimension (max(1, lwork)). On exit, if info >= 0, work[0] returns the optimal lwork.
inlworkThe dimension of the array work. If lwork = -1, workspace query.
outrworkSingle precision array, dimension (n).
inrecCurrent recursion level. Should be set to 0 on first call.
outinfo= 0: successful exit. < 0: if info = -i, the i-th argument had an illegal value.
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
);
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)#
ZLAQZ2 performs AED.
Parameters
inilschurDetermines whether or not to update the full Schur form.
inilqDetermines whether or not to update the matrix Q.
inilzDetermines whether or not to update the matrix Z.
innThe order of the matrices A, B, Q, and Z. n >= 0.
inilo0-based lower bound of active submatrix.
inihi0-based upper bound of active submatrix.
innwThe desired size of the deflation window.
inoutAComplex array, dimension (lda, n).
inldaThe leading dimension of A. lda >= max(1, n).
inoutBComplex array, dimension (ldb, n).
inldbThe leading dimension of B. ldb >= max(1, n).
inoutQComplex array, dimension (ldq, n).
inldqThe leading dimension of Q.
inoutZComplex array, dimension (ldz, n).
inldzThe leading dimension of Z.
outnsThe number of unconverged eigenvalues available as shifts.
outndThe number of converged eigenvalues found.
outalphaComplex array, dimension (n). Eigenvalue numerators.
outbetaComplex array, dimension (n). Eigenvalue denominators.
inoutQCComplex array, dimension (ldqc, nw).
inldqcThe leading dimension of QC.
inoutZCComplex array, dimension (ldzc, nw).
inldzcThe leading dimension of ZC.
outworkComplex array, dimension (max(1, lwork)). On exit, if info >= 0, work[0] returns the optimal lwork.
inlworkThe dimension of the array work. If lwork = -1, workspace query.
outrworkDouble precision array, dimension (n).
inrecCurrent recursion level. Should be set to 0 on first call.
outinfo= 0: successful exit. < 0: if info = -i, the i-th argument had an illegal value.
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
);