# dlaqr5.f

Section: LAPACK (3)
Updated: Tue Nov 14 2017
Page Index

dlaqr5.f

## SYNOPSIS

### Functions/Subroutines

subroutine dlaqr5 (WANTT, WANTZ, KACC22, N, KTOP, KBOT, NSHFTS, SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U, LDU, NV, WV, LDWV, NH, WH, LDWH)
DLAQR5 performs a single small-bulge multi-shift QR sweep.

## Function/Subroutine Documentation

### subroutine dlaqr5 (logical WANTT, logical WANTZ, integer KACC22, integer N, integer KTOP, integer KBOT, integer NSHFTS, double precision, dimension( * ) SR, double precision, dimension( * ) SI, double precision, dimension( ldh, * ) H, integer LDH, integer ILOZ, integer IHIZ, double precision, dimension( ldz, * ) Z, integer LDZ, double precision, dimension( ldv, * ) V, integer LDV, double precision, dimension( ldu, * ) U, integer LDU, integer NV, double precision, dimension( ldwv, * ) WV, integer LDWV, integer NH, double precision, dimension( ldwh, * ) WH, integer LDWH)

DLAQR5 performs a single small-bulge multi-shift QR sweep.

Purpose:

```    DLAQR5, called by DLAQR0, performs a
single small-bulge multi-shift QR sweep.
```

Parameters:

WANTT

```          WANTT is LOGICAL
WANTT = .true. if the quasi-triangular Schur factor
is being computed.  WANTT is set to .false. otherwise.
```

WANTZ

```          WANTZ is LOGICAL
WANTZ = .true. if the orthogonal Schur factor is being
computed.  WANTZ is set to .false. otherwise.
```

KACC22

```          KACC22 is INTEGER with value 0, 1, or 2.
Specifies the computation mode of far-from-diagonal
= 0: DLAQR5 does not accumulate reflections and does not
use matrix-matrix multiply to update far-from-diagonal
matrix entries.
= 1: DLAQR5 accumulates reflections and uses matrix-matrix
multiply to update the far-from-diagonal matrix entries.
= 2: DLAQR5 accumulates reflections, uses matrix-matrix
multiply to update the far-from-diagonal matrix entries,
and takes advantage of 2-by-2 block structure during
matrix multiplies.
```

N

```          N is INTEGER
N is the order of the Hessenberg matrix H upon which this
subroutine operates.
```

KTOP

```          KTOP is INTEGER
```

KBOT

```          KBOT is INTEGER
These are the first and last rows and columns of an
isolated diagonal block upon which the QR sweep is to be
applied. It is assumed without a check that
either KTOP = 1  or   H(KTOP,KTOP-1) = 0
and
either KBOT = N  or   H(KBOT+1,KBOT) = 0.
```

NSHFTS

```          NSHFTS is INTEGER
NSHFTS gives the number of simultaneous shifts.  NSHFTS
must be positive and even.
```

SR

```          SR is DOUBLE PRECISION array, dimension (NSHFTS)
```

SI

```          SI is DOUBLE PRECISION array, dimension (NSHFTS)
SR contains the real parts and SI contains the imaginary
parts of the NSHFTS shifts of origin that define the
multi-shift QR sweep.  On output SR and SI may be
reordered.
```

H

```          H is DOUBLE PRECISION array, dimension (LDH,N)
On input H contains a Hessenberg matrix.  On output a
multi-shift QR sweep with shifts SR(J)+i*SI(J) is applied
to the isolated diagonal block in rows and columns KTOP
through KBOT.
```

LDH

```          LDH is INTEGER
LDH is the leading dimension of H just as declared in the
calling procedure.  LDH.GE.MAX(1,N).
```

ILOZ

```          ILOZ is INTEGER
```

IHIZ

```          IHIZ is INTEGER
Specify the rows of Z to which transformations must be
applied if WANTZ is .TRUE.. 1 .LE. ILOZ .LE. IHIZ .LE. N
```

Z

```          Z is DOUBLE PRECISION array, dimension (LDZ,IHIZ)
If WANTZ = .TRUE., then the QR Sweep orthogonal
similarity transformation is accumulated into
Z(ILOZ:IHIZ,ILOZ:IHIZ) from the right.
If WANTZ = .FALSE., then Z is unreferenced.
```

LDZ

```          LDZ is INTEGER
LDA is the leading dimension of Z just as declared in
the calling procedure. LDZ.GE.N.
```

V

```          V is DOUBLE PRECISION array, dimension (LDV,NSHFTS/2)
```

LDV

```          LDV is INTEGER
LDV is the leading dimension of V as declared in the
calling procedure.  LDV.GE.3.
```

U

```          U is DOUBLE PRECISION array, dimension (LDU,3*NSHFTS-3)
```

LDU

```          LDU is INTEGER
LDU is the leading dimension of U just as declared in the
in the calling subroutine.  LDU.GE.3*NSHFTS-3.
```

NH

```          NH is INTEGER
NH is the number of columns in array WH available for
workspace. NH.GE.1.
```

WH

```          WH is DOUBLE PRECISION array, dimension (LDWH,NH)
```

LDWH

```          LDWH is INTEGER
Leading dimension of WH just as declared in the
calling procedure.  LDWH.GE.3*NSHFTS-3.
```

NV

```          NV is INTEGER
NV is the number of rows in WV agailable for workspace.
NV.GE.1.
```

WV

```          WV is DOUBLE PRECISION array, dimension (LDWV,3*NSHFTS-3)
```

LDWV

```          LDWV is INTEGER
LDWV is the leading dimension of WV as declared in the
in the calling subroutine.  LDWV.GE.NV.
```

Author:

Univ. of Tennessee

Univ. of California Berkeley

NAG Ltd.

Date:

June 2016

Contributors:

Karen Braman and Ralph Byers, Department of Mathematics, University of Kansas, USA

References:

K. Braman, R. Byers and R. Mathias, The Multi-Shift QR Algorithm Part I: Maintaining Well Focused Shifts, and Level 3 Performance, SIAM Journal of Matrix Analysis, volume 23, pages 929--947, 2002.

Definition at line 259 of file dlaqr5.f.

## Author

Generated automatically by Doxygen for LAPACK from the source code.