slaqr5.f man page

slaqr5.f —

Synopsis

Functions/Subroutines

subroutine slaqr5 (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)
SLAQR5 performs a single small-bulge multi-shift QR sweep.

Function/Subroutine Documentation

subroutine slaqr5 (logicalWANTT, logicalWANTZ, integerKACC22, integerN, integerKTOP, integerKBOT, integerNSHFTS, real, dimension( * )SR, real, dimension( * )SI, real, dimension( ldh, * )H, integerLDH, integerILOZ, integerIHIZ, real, dimension( ldz, * )Z, integerLDZ, real, dimension( ldv, * )V, integerLDV, real, dimension( ldu, * )U, integerLDU, integerNV, real, dimension( ldwv, * )WV, integerLDWV, integerNH, real, dimension( ldwh, * )WH, integerLDWH)

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

Purpose:

SLAQR5, called by SLAQR0, performs a
single small-bulge multi-shift QR sweep.

Parameters:

WANTT

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

WANTZ

WANTZ is logical scalar
   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
     orthogonal updates.
= 0: SLAQR5 does not accumulate reflections and does not
     use matrix-matrix multiply to update far-from-diagonal
     matrix entries.
= 1: SLAQR5 accumulates reflections and uses matrix-matrix
     multiply to update the far-from-diagonal matrix entries.
= 2: SLAQR5 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 scalar
   N is the order of the Hessenberg matrix H upon which this
   subroutine operates.

KTOP

KTOP is integer scalar

KBOT

KBOT is integer scalar
   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 scalar
   NSHFTS gives the number of simultaneous shifts.  NSHFTS
   must be positive and even.

SR

SR is REAL array of size (NSHFTS)

SI

SI is REAL array of size (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 REAL array of size (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 scalar
   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 REAL array of size (LDZ,IHI)
   If WANTZ = .TRUE., then the QR Sweep orthogonal
   similarity transformation is accumulated into
   Z(ILOZ:IHIZ,ILO:IHI) from the right.
   If WANTZ = .FALSE., then Z is unreferenced.

LDZ

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

V

V is REAL array of size (LDV,NSHFTS/2)

LDV

LDV is integer scalar
   LDV is the leading dimension of V as declared in the
   calling procedure.  LDV.GE.3.

U

U is REAL array of size
   (LDU,3*NSHFTS-3)

LDU

LDU is integer scalar
   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 scalar
   NH is the number of columns in array WH available for
   workspace. NH.GE.1.

WH

WH is REAL array of size (LDWH,NH)

LDWH

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

NV

NV is integer scalar
   NV is the number of rows in WV agailable for workspace.
   NV.GE.1.

WV

WV is REAL array of size
   (LDWV,3*NSHFTS-3)

LDWV

LDWV is integer scalar
   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

Univ. of Colorado Denver

NAG Ltd.

Date:

September 2012

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 258 of file slaqr5.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.

Referenced By

slaqr5(3) is an alias of slaqr5.f(3).

Sat Nov 16 2013 Version 3.4.2 LAPACK