laqz1#
Functions
-
void slaqz1(const f32 *restrict A, const INT lda, const f32 *restrict B, const INT ldb, const f32 sr1, const f32 sr2, const f32 si, const f32 beta1, const f32 beta2, f32 *restrict v)#
Given a 3-by-3 matrix pencil (A,B), SLAQZ1 sets v to a scalar multiple of the first column of the product.
It is assumed that either sr1 = sr2 or si = 0.K = (A - (beta2*sr2 - i*si)*B)*B^(-1)*(beta1*A - (sr1 + i*si)*B)*B^(-1).
This is useful for starting double implicit shift bulges in the QZ algorithm.
Parameters
inA3x3 matrix A.
inldaLeading dimension of A.
inB3x3 matrix B.
inldbLeading dimension of B.
insr1First shift real part.
insr2Second shift real part.
insiShift imaginary part.
inbeta1First shift beta.
inbeta2Second shift beta.
outvOutput vector of length 3.
void slaqz1(
const f32* restrict A,
const INT lda,
const f32* restrict B,
const INT ldb,
const f32 sr1,
const f32 sr2,
const f32 si,
const f32 beta1,
const f32 beta2,
f32* restrict v
);
Functions
-
void dlaqz1(const f64 *restrict A, const INT lda, const f64 *restrict B, const INT ldb, const f64 sr1, const f64 sr2, const f64 si, const f64 beta1, const f64 beta2, f64 *restrict v)#
Given a 3-by-3 matrix pencil (A,B), DLAQZ1 sets v to a scalar multiple of the first column of the product.
It is assumed that either sr1 = sr2 or si = 0.K = (A - (beta2*sr2 - i*si)*B)*B^(-1)*(beta1*A - (sr1 + i*si)*B)*B^(-1).
This is useful for starting f64 implicit shift bulges in the QZ algorithm.
Parameters
inA3x3 matrix A.
inldaLeading dimension of A.
inB3x3 matrix B.
inldbLeading dimension of B.
insr1First shift real part.
insr2Second shift real part.
insiShift imaginary part.
inbeta1First shift beta.
inbeta2Second shift beta.
outvOutput vector of length 3.
void dlaqz1(
const f64* restrict A,
const INT lda,
const f64* restrict B,
const INT ldb,
const f64 sr1,
const f64 sr2,
const f64 si,
const f64 beta1,
const f64 beta2,
f64* restrict v
);
Functions
-
void claqz1(const INT ilq, const INT ilz, const INT k, const INT istartm, const INT istopm, const INT ihi, c64 *A, const INT lda, c64 *B, const INT ldb, const INT nq, const INT qstart, c64 *Q, const INT ldq, const INT nz, const INT zstart, c64 *Z, const INT ldz)#
CLAQZ1 chases a 1x1 shift bulge in a matrix pencil down a single position.
Parameters
inilqDetermines whether or not to update the matrix Q.
inilzDetermines whether or not to update the matrix Z.
inkIndex indicating the position of the bulge. On entry, the bulge is located in (A(k+1,k),B(k+1,k)). On exit, the bulge is located in (A(k+2,k+1),B(k+2,k+1)).
inistartmUpdates to (A,B) are restricted to (istartm:k+2,k:istopm).
inistopmSee istartm.
inihiIndex of the last row/column in the active block.
inoutAComplex array, dimension (lda, n).
inldaThe leading dimension of A.
inoutBComplex array, dimension (ldb, n).
inldbThe leading dimension of B.
innqThe order of the matrix Q.
inqstartStart index of the matrix Q.
inoutQComplex array, dimension (ldq, nq).
inldqThe leading dimension of Q.
innzThe order of the matrix Z.
inzstartStart index of the matrix Z.
inoutZComplex array, dimension (ldz, nz).
inldzThe leading dimension of Z.
void claqz1(
const INT ilq,
const INT ilz,
const INT k,
const INT istartm,
const INT istopm,
const INT ihi,
c64* A,
const INT lda,
c64* B,
const INT ldb,
const INT nq,
const INT qstart,
c64* Q,
const INT ldq,
const INT nz,
const INT zstart,
c64* Z,
const INT ldz
);
Functions
-
void zlaqz1(const INT ilq, const INT ilz, const INT k, const INT istartm, const INT istopm, const INT ihi, c128 *A, const INT lda, c128 *B, const INT ldb, const INT nq, const INT qstart, c128 *Q, const INT ldq, const INT nz, const INT zstart, c128 *Z, const INT ldz)#
ZLAQZ1 chases a 1x1 shift bulge in a matrix pencil down a single position.
Parameters
inilqDetermines whether or not to update the matrix Q.
inilzDetermines whether or not to update the matrix Z.
inkIndex indicating the position of the bulge. On entry, the bulge is located in (A(k+1,k),B(k+1,k)). On exit, the bulge is located in (A(k+2,k+1),B(k+2,k+1)).
inistartmUpdates to (A,B) are restricted to (istartm:k+2,k:istopm).
inistopmSee istartm.
inihiIndex of the last row/column in the active block.
inoutAComplex array, dimension (lda, n).
inldaThe leading dimension of A.
inoutBComplex array, dimension (ldb, n).
inldbThe leading dimension of B.
innqThe order of the matrix Q.
inqstartStart index of the matrix Q.
inoutQComplex array, dimension (ldq, nq).
inldqThe leading dimension of Q.
innzThe order of the matrix Z.
inzstartStart index of the matrix Z.
inoutZComplex array, dimension (ldz, nz).
inldzThe leading dimension of Z.
void zlaqz1(
const INT ilq,
const INT ilz,
const INT k,
const INT istartm,
const INT istopm,
const INT ihi,
c128* A,
const INT lda,
c128* B,
const INT ldb,
const INT nq,
const INT qstart,
c128* Q,
const INT ldq,
const INT nz,
const INT zstart,
c128* Z,
const INT ldz
);