## MB03HD

### Exchanging eigenvalues of a real 2-by-2 or 4-by-4 skew-Hamiltonian/Hamiltonian pencil in structured Schur form

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

Purpose

      To determine an orthogonal matrix Q, for a real regular 2-by-2 or
      4-by-4 skew-Hamiltonian/Hamiltonian pencil

                      ( A11 A12  )     ( B11  B12  )
          aA - bB = a (          ) - b (           )
                      (  0  A11' )     (  0  -B11' )

      in structured Schur form, such that  J Q' J' (aA - bB) Q  is still
      in structured Schur form but the eigenvalues are exchanged. The
      notation M' denotes the transpose of the matrix M.

Specification

          SUBROUTINE MB03HD( N, A, LDA, B, LDB, MACPAR, Q, LDQ, DWORK,
         $                   INFO )
    C     .. Scalar Arguments ..
          INTEGER            INFO, LDA, LDB, LDQ, N
    C     .. Array Arguments ..
          DOUBLE PRECISION   A( LDA, * ), B( LDB, * ), DWORK( * ),
         $                   MACPAR( * ), Q( LDQ, * )

Arguments

Input/Output Parameters

      N       (input) INTEGER
              The order of the pencil aA - bB.  N = 2 or N = 4.

      A       (input) DOUBLE PRECISION array, dimension (LDA, N)
              If N = 4, the leading N/2-by-N upper trapezoidal part of
              this array must contain the first block row of the skew-
              Hamiltonian matrix A of the pencil aA - bB in structured
              Schur form. Only the entries (1,1), (1,2), (1,4), and
              (2,2) are referenced.
              If N = 2, this array is not referenced.

      LDA     INTEGER
              The leading dimension of the array A.  LDA >= N/2.

      B       (input) DOUBLE PRECISION array, dimension (LDB, N)
              The leading N/2-by-N part of this array must contain the
              first block row of the Hamiltonian matrix B of the
              pencil aA - bB in structured Schur form. The entry (2,3)
              is not referenced.

      LDB     INTEGER
              The leading dimension of the array B.  LDB >= N/2.

      MACPAR  (input)  DOUBLE PRECISION array, dimension (2)
              Machine parameters:
              MACPAR(1)  (machine precision)*base, DLAMCH( 'P' );
              MACPAR(2)  safe minimum,             DLAMCH( 'S' ).
              This argument is not used for N = 2.

      Q       (output) DOUBLE PRECISION array, dimension (LDQ, N)
              The leading N-by-N part of this array contains the
              orthogonal transformation matrix Q.

      LDQ     INTEGER
              The leading dimension of the array Q.  LDQ >= N.

Workspace

      DWORK   DOUBLE PRECISION array, dimension (24)
              If N = 2, then DWORK is not referenced.

Error Indicator

      INFO    INTEGER
              = 0: succesful exit;
              = 1: the leading N/2-by-N/2 block of the matrix B is
                   numerically singular, but slightly perturbed values
                   have been used. This is a warning.

Method

      The algorithm uses orthogonal transformations as described on page
      31 in [2]. The structure is exploited.

References

      [1] Benner, P., Byers, R., Mehrmann, V. and Xu, H.
          Numerical computation of deflating subspaces of skew-
          Hamiltonian/Hamiltonian pencils.
          SIAM J. Matrix Anal. Appl., 24 (1), pp. 165-190, 2002.

      [2] Benner, P., Byers, R., Losse, P., Mehrmann, V. and Xu, H.
          Numerical Solution of Real Skew-Hamiltonian/Hamiltonian
          Eigenproblems.
          Tech. Rep., Technical University Chemnitz, Germany,
          Nov. 2007.

Numerical Aspects

      The algorithm is numerically backward stable.

Further Comments

      None

Example

Program Text

      None

Program Data

      None

Program Results

      None

Return to Supporting Routines index