laqz0#
Functions
-
void slaqz0(const char *wants, const char *wantq, const char *wantz, const INT n, const INT ilo, const INT ihi, f32 *restrict A, const INT lda, f32 *restrict B, const INT ldb, f32 *restrict alphar, f32 *restrict alphai, f32 *restrict beta, f32 *restrict Q, const INT ldq, f32 *restrict Z, const INT ldz, f32 *restrict work, const INT lwork, const INT rec, INT *info)#
SLAQZ0 computes the eigenvalues of a real matrix pair (H,T), where H is an upper Hessenberg matrix and T is upper triangular, using the double-shift QZ method with aggressive early deflation.
Parameters
inwants‘E’: Compute eigenvalues only; ‘S’: Compute Schur form.
inwantq‘N’: Q not computed; ‘I’: Q initialized; ‘V’: Q updated.
inwantz‘N’: Z not computed; ‘I’: Z initialized; ‘V’: Z updated.
innThe order of the matrices A, B, Q, and Z. n >= 0.
iniloLower bound of active submatrix (0-based).
inihiUpper bound of active submatrix (0-based).
inoutAUpper Hessenberg matrix A.
inldaLeading dimension of A.
inoutBUpper triangular matrix B.
inldbLeading dimension of B.
outalpharReal parts of eigenvalues.
outalphaiImaginary parts of eigenvalues.
outbetaScale factors for eigenvalues.
inoutQLeft Schur vectors.
inldqLeading dimension of Q.
inoutZRight Schur vectors.
inldzLeading dimension of Z.
outworkWorkspace array.
inlworkDimension of workspace. If lwork = -1, workspace query.
inrecCurrent recursion level. Should be set to 0 on first call.
outinfo= 0: successful exit.
void slaqz0(
const char* wants,
const char* wantq,
const char* wantz,
const INT n,
const INT ilo,
const INT ihi,
f32* restrict A,
const INT lda,
f32* restrict B,
const INT ldb,
f32* restrict alphar,
f32* restrict alphai,
f32* restrict beta,
f32* restrict Q,
const INT ldq,
f32* restrict Z,
const INT ldz,
f32* restrict work,
const INT lwork,
const INT rec,
INT* info
);
Functions
-
void dlaqz0(const char *wants, const char *wantq, const char *wantz, const INT n, const INT ilo, const INT ihi, f64 *restrict A, const INT lda, f64 *restrict B, const INT ldb, f64 *restrict alphar, f64 *restrict alphai, f64 *restrict beta, f64 *restrict Q, const INT ldq, f64 *restrict Z, const INT ldz, f64 *restrict work, const INT lwork, const INT rec, INT *info)#
DLAQZ0 computes the eigenvalues of a real matrix pair (H,T), where H is an upper Hessenberg matrix and T is upper triangular, using the f64-shift QZ method with aggressive early deflation.
Parameters
inwants‘E’: Compute eigenvalues only; ‘S’: Compute Schur form.
inwantq‘N’: Q not computed; ‘I’: Q initialized; ‘V’: Q updated.
inwantz‘N’: Z not computed; ‘I’: Z initialized; ‘V’: Z updated.
innThe order of the matrices A, B, Q, and Z. n >= 0.
iniloLower bound of active submatrix (0-based).
inihiUpper bound of active submatrix (0-based).
inoutAUpper Hessenberg matrix A.
inldaLeading dimension of A.
inoutBUpper triangular matrix B.
inldbLeading dimension of B.
outalpharReal parts of eigenvalues.
outalphaiImaginary parts of eigenvalues.
outbetaScale factors for eigenvalues.
inoutQLeft Schur vectors.
inldqLeading dimension of Q.
inoutZRight Schur vectors.
inldzLeading dimension of Z.
outworkWorkspace array.
inlworkDimension of workspace. If lwork = -1, workspace query.
inrecCurrent recursion level. Should be set to 0 on first call.
outinfo= 0: successful exit.
void dlaqz0(
const char* wants,
const char* wantq,
const char* wantz,
const INT n,
const INT ilo,
const INT ihi,
f64* restrict A,
const INT lda,
f64* restrict B,
const INT ldb,
f64* restrict alphar,
f64* restrict alphai,
f64* restrict beta,
f64* restrict Q,
const INT ldq,
f64* restrict Z,
const INT ldz,
f64* restrict work,
const INT lwork,
const INT rec,
INT* info
);
Functions
-
void claqz0(const char *wants, const char *wantq, const char *wantz, const INT n, const INT ilo, const INT ihi, c64 *restrict A, const INT lda, c64 *restrict B, const INT ldb, c64 *restrict alpha, c64 *restrict beta, c64 *restrict Q, const INT ldq, c64 *restrict Z, const INT ldz, c64 *restrict work, const INT lwork, f32 *restrict rwork, const INT rec, INT *info)#
CLAQZ0 computes the eigenvalues of a complex matrix pair (H,T), where H is an upper Hessenberg matrix and T is upper triangular, using the single-shift QZ method.
Matrix pairs of this type are produced by the reduction to generalized upper Hessenberg form of a complex matrix pair (A,B):
A = Q1*H*Z1**H, B = Q1*T*Z1**H,
as computed by CGGHRD.
If JOB=’S’, then the Hessenberg-triangular pair (H,T) is also reduced to generalized Schur form,
H = Q*S*Z**H, T = Q*P*Z**H,
where Q and Z are unitary matrices, P and S are upper triangular.
Parameters
inwants‘E’: Compute eigenvalues only; ‘S’: Compute Schur form.
inwantq‘N’: Q not computed; ‘I’: Q initialized; ‘V’: Q updated.
inwantz‘N’: Z not computed; ‘I’: Z initialized; ‘V’: Z updated.
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.
inoutAComplex array, dimension (lda, n). Upper Hessenberg matrix.
inldaLeading dimension of A.
inoutBComplex array, dimension (ldb, n). Upper triangular matrix.
inldbLeading dimension of B.
outalphaComplex array, dimension (n). Eigenvalue numerators.
outbetaComplex array, dimension (n). Eigenvalue denominators.
inoutQComplex array, dimension (ldq, n). Left Schur vectors.
inldqLeading dimension of Q.
inoutZComplex array, dimension (ldz, n). Right Schur vectors.
inldzLeading dimension of Z.
outworkComplex workspace array, dimension (max(1, lwork)).
inlworkDimension of 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. = 1,…,N: the QZ iteration did not converge.
void claqz0(
const char* wants,
const char* wantq,
const char* wantz,
const INT n,
const INT ilo,
const INT ihi,
c64* restrict A,
const INT lda,
c64* restrict B,
const INT ldb,
c64* restrict alpha,
c64* restrict beta,
c64* restrict Q,
const INT ldq,
c64* restrict Z,
const INT ldz,
c64* restrict work,
const INT lwork,
f32* restrict rwork,
const INT rec,
INT* info
);
Functions
-
void zlaqz0(const char *wants, const char *wantq, const char *wantz, const INT n, const INT ilo, const INT ihi, c128 *restrict A, const INT lda, c128 *restrict B, const INT ldb, c128 *restrict alpha, c128 *restrict beta, c128 *restrict Q, const INT ldq, c128 *restrict Z, const INT ldz, c128 *restrict work, const INT lwork, f64 *restrict rwork, const INT rec, INT *info)#
ZLAQZ0 computes the eigenvalues of a complex matrix pair (H,T), where H is an upper Hessenberg matrix and T is upper triangular, using the single-shift QZ method.
Matrix pairs of this type are produced by the reduction to generalized upper Hessenberg form of a complex matrix pair (A,B):
A = Q1*H*Z1**H, B = Q1*T*Z1**H,
as computed by ZGGHRD.
If JOB=’S’, then the Hessenberg-triangular pair (H,T) is also reduced to generalized Schur form,
H = Q*S*Z**H, T = Q*P*Z**H,
where Q and Z are unitary matrices, P and S are upper triangular.
Parameters
inwants‘E’: Compute eigenvalues only; ‘S’: Compute Schur form.
inwantq‘N’: Q not computed; ‘I’: Q initialized; ‘V’: Q updated.
inwantz‘N’: Z not computed; ‘I’: Z initialized; ‘V’: Z updated.
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.
inoutAComplex array, dimension (lda, n). Upper Hessenberg matrix.
inldaLeading dimension of A.
inoutBComplex array, dimension (ldb, n). Upper triangular matrix.
inldbLeading dimension of B.
outalphaComplex array, dimension (n). Eigenvalue numerators.
outbetaComplex array, dimension (n). Eigenvalue denominators.
inoutQComplex array, dimension (ldq, n). Left Schur vectors.
inldqLeading dimension of Q.
inoutZComplex array, dimension (ldz, n). Right Schur vectors.
inldzLeading dimension of Z.
outworkComplex workspace array, dimension (max(1, lwork)).
inlworkDimension of 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. = 1,…,N: the QZ iteration did not converge.
void zlaqz0(
const char* wants,
const char* wantq,
const char* wantz,
const INT n,
const INT ilo,
const INT ihi,
c128* restrict A,
const INT lda,
c128* restrict B,
const INT ldb,
c128* restrict alpha,
c128* restrict beta,
c128* restrict Q,
const INT ldq,
c128* restrict Z,
const INT ldz,
c128* restrict work,
const INT lwork,
f64* restrict rwork,
const INT rec,
INT* info
);