-
template<typename T>
void laqz2(logical *ilq, logical *ilz, integer *k, integer *istartm, integer *istopm, integer *ihi, T *a, integer *lda, T *b, integer *ldb, integer *nq, integer *qstart, T *q, integer *ldq, integer *nz, integer *zstart, T *z, integer *ldz)# LAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position.
Purpose:
LAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position
- Parameters:
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
K – [in]
K is INTEGER
Index indicating the position of the bulge.
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)).
ISTARTM – [in] ISTARTM is INTEGER
ISTOPM – [in]
ISTOPM is INTEGER
Updates to (A,B) are restricted to (istartm:k+3,k:istopm). It is assumed without checking that istartm <= k+1 and k+2 <= istopm
IHI – [in] IHI is INTEGER
A – [inout] A is REAL array, dimension (LDA,N)
LDA – [in]
LDA is INTEGER
The leading dimension of A as declared in the calling procedure.
B – [inout] B is REAL array, dimension (LDB,N)
LDB – [in]
LDB is INTEGER
The leading dimension of B as declared in the calling procedure.
NQ – [in]
NQ is INTEGER
The order of the matrix Q
QSTART – [in]
QSTART is INTEGER
Start index of the matrix Q. Rotations are applied To columns k+2-qStart:k+4-qStart of Q.
Q – [inout] Q is REAL array, dimension (LDQ,NQ)
LDQ – [in]
LDQ is INTEGER
The leading dimension of Q as declared in the calling procedure.
NZ – [in]
NZ is INTEGER
The order of the matrix Z
ZSTART – [in]
ZSTART is INTEGER
Start index of the matrix Z. Rotations are applied To columns k+1-qStart:k+3-qStart of Z.
Z – [inout] Z is REAL array, dimension (LDZ,NZ)
LDZ – [in]
LDZ is INTEGER
The leading dimension of Q as declared in the calling procedure.
-
template<typename T, typename Ta>
void laqz2(logical *ilschur, logical *ilq, logical *ilz, integer *n, integer *ilo, integer *ihi, integer *nw, T *a, integer *lda, T *b, integer *ldb, T *q, integer *ldq, T *z, integer *ldz, integer *ns, integer *nd, T *alpha, T *beta, T *qc, integer *ldqc, T *zc, integer *ldzc, T *work, integer *lwork, float *rwork, integer *rec, integer *info)#