MB03VY

Orthogonal matrices for reduction to periodic Hessenberg form of a product of matrices

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

  To generate the real orthogonal matrices Q_1, Q_2, ..., Q_p,
  which are defined as the product of ihi-ilo elementary reflectors
  of order n, as returned by SLICOT Library routine MB03VD:

     Q_j = H_j(ilo) H_j(ilo+1) . . . H_j(ihi-1).

Specification
      SUBROUTINE MB03VY( N, P, ILO, IHI, A, LDA1, LDA2, TAU, LDTAU,
     $                   DWORK, LDWORK, INFO )
C     .. Scalar Arguments ..
      INTEGER           IHI, ILO, INFO, LDA1, LDA2, LDTAU, LDWORK, N, P
C     .. Array Arguments ..
      DOUBLE PRECISION  A( LDA1, LDA2, * ), DWORK( * ), TAU( LDTAU, * )

Arguments

Input/Output Parameters

  N       (input) INTEGER
          The order of the matrices Q_1, Q_2, ..., Q_p.  N >= 0.

  P       (input) INTEGER
          The number p of transformation matrices.  P >= 1.

  ILO     (input) INTEGER
  IHI     (input) INTEGER
          The values of the indices ilo and ihi, respectively, used
          in the previous call of the SLICOT Library routine MB03VD.
          1 <= ILO <= max(1,N); min(ILO,N) <= IHI <= N.

  A       (input/output) DOUBLE PRECISION array, dimension
          (LDA1,LDA2,N)
          On entry, the leading N-by-N strictly lower triangular
          part of A(*,*,j) must contain the vectors which define the
          elementary reflectors used for reducing A_j, as returned
          by SLICOT Library routine MB03VD, j = 1, ..., p.
          On exit, the leading N-by-N part of A(*,*,j) contains the
          N-by-N orthogonal matrix Q_j, j = 1, ..., p.

  LDA1    INTEGER
          The first leading dimension of the array A.
          LDA1 >= max(1,N).

  LDA2    INTEGER
          The second leading dimension of the array A.
          LDA2 >= max(1,N).

  TAU     (input) DOUBLE PRECISION array, dimension (LDTAU,P)
          The leading N-1 elements in the j-th column must contain
          the scalar factors of the elementary reflectors used to
          form the matrix Q_j, as returned by SLICOT Library routine
          MB03VD.

  LDTAU   INTEGER
          The leading dimension of the array TAU.
          LDTAU >= max(1,N-1).

Workspace
  DWORK   DOUBLE PRECISION array, dimension (LDWORK)
          On exit, if INFO = 0, DWORK(1) returns the optimal value
          of LDWORK.

  LDWORK  INTEGER
          The length of the array DWORK.  LDWORK >= MAX(1,N).
          For optimum performance LDWORK should be larger.

          If LDWORK = -1, then a workspace query is assumed;
          the routine only calculates the optimal size of the
          DWORK array, returns this value as the first entry of
          the DWORK array, and no error message related to LDWORK
          is issued by XERBLA.

Error Indicator
  INFO    INTEGER
          = 0:  successful exit;
          < 0:  if INFO = -i, the i-th argument had an illegal
                value.

Method
  Each matrix Q_j is generated as the product of the elementary
  reflectors used for reducing A_j. Standard LAPACK routines for
  Hessenberg and QR decompositions are used.

References
  [1] Bojanczyk, A.W., Golub, G. and Van Dooren, P.
      The periodic Schur decomposition: algorithms and applications.
      Proc. of the SPIE Conference (F.T. Luk, Ed.), 1770, pp. 31-42,
      1992.

  [2] Sreedhar, J. and Van Dooren, P.
      Periodic Schur form and some matrix equations.
      Proc. of the Symposium on the Mathematical Theory of Networks
      and Systems (MTNS'93), Regensburg, Germany (U. Helmke,
      R. Mennicken and J. Saurer, Eds.), Vol. 1, pp. 339-362, 1994.

Numerical Aspects
  The algorithm is numerically stable.

Further Comments
  None
Example

Program Text

  None
Program Data
  None
Program Results
  None

Return to Supporting Routines index