Loading...
Searching...
No Matches

## dlaqz2()

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

DLAQZ2

Download DLAQZ2 + dependencies [TGZ] [ZIP] [TXT]

Purpose:

      !>
      !>      DLAQZ2 chases a 2x2 shift bulge in a matrix pencil down a single position
      !>

Parameters

  [in]

  ILQ

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

  [in]

  ILZ

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

  [in]

  K

      !>          K is INTEGER
      !>              Index indicating the position of the bulge.
      !>              On entry, the bulge is located in
      !>              (A(k+1:k+2,k:k+1),B(k+1:k+2,k:k+1)).
      !>              On exit, the bulge is located in
      !>              (A(k+2:k+3,k+1:k+2),B(k+2:k+3,k+1:k+2)).
      !>

  [in]

  ISTARTM

      !>          ISTARTM is INTEGER
      !>

  [in]

  ISTOPM

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

  [in]

  IHI

      !>          IHI is INTEGER
      !>

  [in,out]

  A

      !>          A is DOUBLE PRECISION array, dimension (LDA,N)
      !>

  [in]

  LDA

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

  [in,out]

  B

      !>          B is DOUBLE PRECISION array, dimension (LDB,N)
      !>

  [in]

  LDB

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

  [in]

  NQ

      !>          NQ is INTEGER
      !>              The order of the matrix Q
      !>

  [in]

  QSTART

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

  [in,out]

  Q

      !>          Q is DOUBLE PRECISION array, dimension (LDQ,NQ)
      !>

  [in]

  LDQ

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

  [in]

  NZ

      !>          NZ is INTEGER
      !>              The order of the matrix Z
      !>

  [in]

  ZSTART

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

  [in,out]

  Z

      !>          Z is DOUBLE PRECISION array, dimension (LDZ,NZ)
      !>

  [in]

  LDZ

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

Author
  Thijs Steel, KU Leuven

Date
  May 2020