---
name: "laqz1"
section: "3"
platform: "linux"
package: "lapack-doc"
version: "3.12.1-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/laqz1"
---

# laqz1(3)

laqz1: step in ggev3, gges3

## 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

Definition at line **171** of file **claqz1.f**.

### 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

Definition at line **125** of file **dlaqz1.f**.

### 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

Definition at line **125** of file **slaqz1.f**.

### 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

Definition at line **171** of file **zlaqz1.f**.

## Author

Generated automatically by Doxygen for LAPACK from the source code.
