Loading...
Searching...
No Matches

## slaqz4()

subroutine slaqz4 | ( | logical, intent(in) | ilschur,
|  | logical, intent(in) | ilq,
|  | logical, intent(in) | ilz,
|  | integer, intent(in) | n,
|  | integer, intent(in) | ilo,
|  | integer, intent(in) | ihi,
|  | integer, intent(in) | nshifts,
|  | integer, intent(in) | nblock_desired,
|  | real, dimension( * ), intent(inout) | sr,
|  | real, dimension( * ), intent(inout) | si,
|  | real, dimension( * ), intent(inout) | ss,
|  | real, dimension( lda, * ), intent(inout) | a,
|  | integer, intent(in) | lda,
|  | real, dimension( ldb, * ), intent(inout) | b,
|  | integer, intent(in) | ldb,
|  | real, dimension( ldq, * ), intent(inout) | q,
|  | integer, intent(in) | ldq,
|  | real, dimension( ldz, * ), intent(inout) | z,
|  | integer, intent(in) | ldz,
|  | real, dimension( ldqc, * ), intent(inout) | qc,
|  | integer, intent(in) | ldqc,
|  | real, dimension( ldzc, * ), intent(inout) | zc,
|  | integer, intent(in) | ldzc,
|  | real, dimension( * ), intent(inout) | work,
|  | integer, intent(in) | lwork,
|  | integer, intent(out) | info )

SLAQZ4

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

Purpose:

      !>
      !> SLAQZ4 Executes a single multishift QZ sweep
      !>

Parameters

  [in]

  ILSCHUR

      !>          ILSCHUR is LOGICAL
      !>              Determines whether or not to update the full Schur form
      !>

  [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]

  N

      !>          N is INTEGER
      !>          The order of the matrices A, B, Q, and Z.  N >= 0.
      !>

  [in]

  ILO

      !>          ILO is INTEGER
      !>

  [in]

  IHI

      !>          IHI is INTEGER
      !>

  [in]

  NSHIFTS

      !>          NSHIFTS is INTEGER
      !>          The desired number of shifts to use
      !>

  [in]

  NBLOCK_DESIRED

      !>          NBLOCK_DESIRED is INTEGER
      !>          The desired size of the computational windows
      !>

  [in]

  SR

      !>          SR is REAL array. SR contains
      !>          the real parts of the shifts to use.
      !>

  [in]

  SI

      !>          SI is REAL array. SI contains
      !>          the imaginary parts of the shifts to use.
      !>

  [in]

  SS

      !>          SS is REAL array. SS contains
      !>          the scale of the shifts to use.
      !>

  [in,out]

  A

      !>          A is REAL array, dimension (LDA, N)
      !>

  [in]

  LDA

      !>          LDA is INTEGER
      !>          The leading dimension of the array A.  LDA >= max( 1, N ).
      !>

  [in,out]

  B

      !>          B is REAL array, dimension (LDB, N)
      !>

  [in]

  LDB

      !>          LDB is INTEGER
      !>          The leading dimension of the array B.  LDB >= max( 1, N ).
      !>

  [in,out]

  Q

      !>          Q is REAL array, dimension (LDQ, N)
      !>

  [in]

  LDQ

      !>          LDQ is INTEGER
      !>

  [in,out]

  Z

      !>          Z is REAL array, dimension (LDZ, N)
      !>

  [in]

  LDZ

      !>          LDZ is INTEGER
      !>

  [in,out]

  QC

      !>          QC is REAL array, dimension (LDQC, NBLOCK_DESIRED)
      !>

  [in]

  LDQC

      !>          LDQC is INTEGER
      !>

  [in,out]

  ZC

      !>          ZC is REAL array, dimension (LDZC, NBLOCK_DESIRED)
      !>

  [in]

  LDZC

      !>          LDZ is INTEGER
      !>

  [out]

  WORK

      !>          WORK is REAL array, dimension (MAX(1,LWORK))
      !>          On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.
      !>

  [in]

  LWORK

      !>          LWORK is INTEGER
      !>          The dimension of the array WORK.  LWORK >= max(1,N).
      !>
      !>          If LWORK = -1, then a workspace query is assumed; the routine
      !>          only calculates the optimal size of the WORK array, returns
      !>          this value as the first entry of the WORK array, and no error
      !>          message related to LWORK is issued by XERBLA.
      !>

  [out]

  INFO

      !>          INFO is INTEGER
      !>          = 0: successful exit
      !>          < 0: if INFO = -i, the i-th argument had an illegal value
      !>

Author
  Thijs Steel, KU Leuven

Date
  May 2020