Scroll to navigation

laqz1(3) LAPACK laqz1(3)

NAME

laqz1 - laqz1: step in ggev3, gges3

SYNOPSIS

Functions


subroutine claqz1 (ilq, ilz, k, istartm, istopm, ihi, a, lda, b, ldb, nq, qstart, q, ldq, nz, zstart, z, ldz)
CLAQZ1 subroutine dlaqz1 (a, lda, b, ldb, sr1, sr2, si, beta1, beta2, v)
DLAQZ1 subroutine slaqz1 (a, lda, b, ldb, sr1, sr2, si, beta1, beta2, v)
SLAQZ1 subroutine zlaqz1 (ilq, ilz, k, istartm, istopm, ihi, a, lda, b, ldb, nq, qstart, q, ldq, nz, zstart, z, ldz)
ZLAQZ1

Detailed Description

Function Documentation

subroutine claqz1 (logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) k, integer, intent(in) istartm, integer, intent(in) istopm, integer, intent(in) ihi, complex, dimension( lda, * ) a, integer, intent(in) lda, complex, dimension( ldb, * ) b, integer, intent(in) ldb, integer, intent(in) nq, integer, intent(in) qstart, complex, dimension( ldq, * ) q, integer, intent(in) ldq, integer, intent(in) nz, integer, intent(in) zstart, complex, dimension( ldz, * ) z, integer, intent(in) ldz)

CLAQZ1

Purpose:


CLAQZ1 chases a 1x1 shift bulge in a matrix pencil down a single position

Parameters

ILQ


ILQ is LOGICAL
Determines whether or not to update the matrix Q

ILZ


ILZ is LOGICAL
Determines whether or not to update the matrix Z

K


K is INTEGER
Index 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)).

ISTARTM


ISTARTM is INTEGER

ISTOPM


ISTOPM is INTEGER
Updates to (A,B) are restricted to
(istartm:k+2,k:istopm). It is assumed
without checking that istartm <= k+1 and
k+2 <= istopm

IHI


IHI is INTEGER

A


A is COMPLEX array, dimension (LDA,N)

LDA


LDA is INTEGER
The leading dimension of A as declared in
the calling procedure.

B


B is COMPLEX array, dimension (LDB,N)

LDB


LDB is INTEGER
The leading dimension of B as declared in
the calling procedure.

NQ


NQ is INTEGER
The order of the matrix Q

QSTART


QSTART is INTEGER
Start index of the matrix Q. Rotations are applied
To columns k+2-qStart:k+3-qStart of Q.

Q


Q is COMPLEX array, dimension (LDQ,NQ)

LDQ


LDQ is INTEGER
The leading dimension of Q as declared in
the calling procedure.

NZ


NZ is INTEGER
The order of the matrix Z

ZSTART


ZSTART is INTEGER
Start index of the matrix Z. Rotations are applied
To columns k+1-qStart:k+2-qStart of Z.

Z


Z is COMPLEX array, dimension (LDZ,NZ)

LDZ


LDZ is INTEGER
The leading dimension of Q as declared in
the calling procedure.

Author

Thijs Steel, KU Leuven

Date

May 2020

subroutine dlaqz1 (double precision, dimension( lda, * ), intent(in) a, integer, intent(in) lda, double precision, dimension( ldb, * ), intent(in) b, integer, intent(in) ldb, double precision, intent(in) sr1, double precision, intent(in) sr2, double precision, intent(in) si, double precision, intent(in) beta1, double precision, intent(in) beta2, double precision, dimension( * ), intent(out) v)

DLAQZ1

Purpose:


Given a 3-by-3 matrix pencil (A,B), DLAQZ1 sets v to a
scalar multiple of the first column of the product
(*) K = (A - (beta2*sr2 - i*si)*B)*B^(-1)*(beta1*A - (sr2 + i*si2)*B)*B^(-1).
It is assumed that either
1) sr1 = sr2
or
2) si = 0.
This is useful for starting double implicit shift bulges
in the QZ algorithm.

Parameters

A


A is DOUBLE PRECISION array, dimension (LDA,N)
The 3-by-3 matrix A in (*).

LDA


LDA is INTEGER
The leading dimension of A as declared in
the calling procedure.

B


B is DOUBLE PRECISION array, dimension (LDB,N)
The 3-by-3 matrix B in (*).

LDB


LDB is INTEGER
The leading dimension of B as declared in
the calling procedure.

SR1


SR1 is DOUBLE PRECISION

SR2


SR2 is DOUBLE PRECISION

SI


SI is DOUBLE PRECISION

BETA1


BETA1 is DOUBLE PRECISION

BETA2


BETA2 is DOUBLE PRECISION

V


V is DOUBLE PRECISION array, dimension (N)
A scalar multiple of the first column of the
matrix K in (*).

Author

Thijs Steel, KU Leuven

Date

May 2020

subroutine slaqz1 (real, dimension( lda, * ), intent(in) a, integer, intent(in) lda, real, dimension( ldb, * ), intent(in) b, integer, intent(in) ldb, real, intent(in) sr1, real, intent(in) sr2, real, intent(in) si, real, intent(in) beta1, real, intent(in) beta2, real, dimension( * ), intent(out) v)

SLAQZ1

Purpose:


Given a 3-by-3 matrix pencil (A,B), SLAQZ1 sets v to a
scalar multiple of the first column of the product
(*) K = (A - (beta2*sr2 - i*si)*B)*B^(-1)*(beta1*A - (sr2 + i*si2)*B)*B^(-1).
It is assumed that either
1) sr1 = sr2
or
2) si = 0.
This is useful for starting double implicit shift bulges
in the QZ algorithm.

Parameters

A


A is REAL array, dimension (LDA,N)
The 3-by-3 matrix A in (*).

LDA


LDA is INTEGER
The leading dimension of A as declared in
the calling procedure.

B


B is REAL array, dimension (LDB,N)
The 3-by-3 matrix B in (*).

LDB


LDB is INTEGER
The leading dimension of B as declared in
the calling procedure.

SR1


SR1 is REAL

SR2


SR2 is REAL

SI


SI is REAL

BETA1


BETA1 is REAL

BETA2


BETA2 is REAL

V


V is REAL array, dimension (N)
A scalar multiple of the first column of the
matrix K in (*).

Author

Thijs Steel, KU Leuven

Date

May 2020

subroutine zlaqz1 (logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) k, integer, intent(in) istartm, integer, intent(in) istopm, integer, intent(in) ihi, complex*16, dimension( lda, * ) a, integer, intent(in) lda, complex*16, dimension( ldb, * ) b, integer, intent(in) ldb, integer, intent(in) nq, integer, intent(in) qstart, complex*16, dimension( ldq, * ) q, integer, intent(in) ldq, integer, intent(in) nz, integer, intent(in) zstart, complex*16, dimension( ldz, * ) z, integer, intent(in) ldz)

ZLAQZ1

Purpose:


ZLAQZ1 chases a 1x1 shift bulge in a matrix pencil down a single position

Parameters

ILQ


ILQ is LOGICAL
Determines whether or not to update the matrix Q

ILZ


ILZ is LOGICAL
Determines whether or not to update the matrix Z

K


K is INTEGER
Index 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)).

ISTARTM


ISTARTM is INTEGER

ISTOPM


ISTOPM is INTEGER
Updates to (A,B) are restricted to
(istartm:k+2,k:istopm). It is assumed
without checking that istartm <= k+1 and
k+2 <= istopm

IHI


IHI is INTEGER

A


A is COMPLEX*16 array, dimension (LDA,N)

LDA


LDA is INTEGER
The leading dimension of A as declared in
the calling procedure.

B


B is COMPLEX*16 array, dimension (LDB,N)

LDB


LDB is INTEGER
The leading dimension of B as declared in
the calling procedure.

NQ


NQ is INTEGER
The order of the matrix Q

QSTART


QSTART is INTEGER
Start index of the matrix Q. Rotations are applied
To columns k+2-qStart:k+3-qStart of Q.

Q


Q is COMPLEX*16 array, dimension (LDQ,NQ)

LDQ


LDQ is INTEGER
The leading dimension of Q as declared in
the calling procedure.

NZ


NZ is INTEGER
The order of the matrix Z

ZSTART


ZSTART is INTEGER
Start index of the matrix Z. Rotations are applied
To columns k+1-qStart:k+2-qStart of Z.

Z


Z is COMPLEX*16 array, dimension (LDZ,NZ)

LDZ


LDZ is INTEGER
The leading dimension of Q as declared in
the calling procedure.

Author

Thijs Steel, KU Leuven

Date

May 2020

Author

Generated automatically by Doxygen for LAPACK from the source code.

Sat Dec 9 2023 21:42:18 Version 3.12.0