-
template<typename T>
void laqz4(logical *ilschur, logical *ilq, logical *ilz, integer *n, integer *ilo, integer *ihi, integer *nshifts, integer *nblock_desired, T *sr, T *si, T *ss, T *a, integer *lda, T *b, integer *ldb, T *q, integer *ldq, T *z, integer *ldz, T *qc, integer *ldqc, T *zc, integer *ldzc, T *work, integer *lwork, integer *info)# LAQZ4 Executes a single multishift QZ sweep.
Purpose:
LAQZ4 Executes a single multishift QZ sweep
- Parameters:
ILSCHUR – [in]
ILSCHUR is LOGICAL
Determines whether or not to update the full Schur form
ILQ – [in]
ILQ is LOGICAL
Determines whether or not to update the matrix Q
ILZ – [in]
ILZ is LOGICAL
Determines whether or not to update the matrix Z
N – [in]
N is INTEGER
The order of the matrices A, B, Q, and Z. N >= 0.
ILO – [in] ILO is INTEGER
IHI – [in] IHI is INTEGER
NSHIFTS – [in]
NSHIFTS is INTEGER
The desired number of shifts to use
NBLOCK_DESIRED – [in]
NBLOCK_DESIRED is INTEGER
The desired size of the computational windows
SR – [in] SR is REAL array. SR contains the real parts of the shifts to use.
SI – [in] SI is REAL array. SI contains the imaginary parts of the shifts to use.
SS – [in] SS is REAL array. SS contains the scale of the shifts to use.
A – [inout] A is REAL array, dimension (LDA, N)
LDA – [in]
LDA is INTEGER
The leading dimension of the array A. LDA >= fla_max( 1, N ).
B – [inout] B is REAL array, dimension (LDB,N)
LDB – [in]
LDB is INTEGER
The leading dimension of the array B. LDB >= fla_max( 1, N ).
Q – [inout] Q is REAL array, dimension (LDQ,N)
LDQ – [in] LDQ is INTEGER
Z – [inout] Z is REAL array, dimension (LDZ,N)
LDZ – [in] LDZ is INTEGER
QC – [inout] QC is REAL array, dimension (LDQC, NBLOCK_DESIRED)
LDQC – [in] LDQC is INTEGER
ZC – [inout] ZC is REAL array, dimension (LDZC, NBLOCK_DESIRED)
LDZC – [in] LDZC is INTEGER
WORK – [out]
WORK is REAL array, dimension (MAX(1,LWORK))
On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.
LWORK – [in]
LWORK is INTEGER
The dimension of the array WORK. LWORK >= fla_max(1,N).
If LWORK = -1, then a workspace query is assumed; the routine only calculates the optimal size of the WORK array, returns this value as the first entry of the WORK array, and no error message related to LWORK is issued by XERBLA.INFO – [out]
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value