###
Exchanging eigenvalues of a complex 2-by-2 upper triangular pencil

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

To compute unitary matrices Q1 and Q2 for a complex 2-by-2 regular
pencil aA - bB with A, B upper triangular, such that
Q2' (aA - bB) Q1 is still upper triangular but the eigenvalues are
in reversed order. The matrices Q1 and Q2 are represented by
( CO1 SI1 ) ( CO2 SI2 )
Q1 = ( ), Q2 = ( ).
( -SI1' CO1 ) ( -SI2' CO2 )
The notation M' denotes the conjugate transpose of the matrix M.

**Specification**
SUBROUTINE MB03DZ( A, LDA, B, LDB, CO1, SI1, CO2, SI2 )
C .. Scalar Arguments ..
INTEGER LDA, LDB
DOUBLE PRECISION CO1, CO2
COMPLEX*16 SI1, SI2
C .. Array Arguments ..
COMPLEX*16 A( LDA, * ), B( LDB, * )

**Arguments**
**Input/Output Parameters**

A (input) COMPLEX*16 array, dimension (LDA, 2)
On entry, the leading 2-by-2 upper triangular part of
this array must contain the matrix A of the pencil.
The (2,1) entry is not referenced.
LDA INTEGER
The leading dimension of the array A. LDA >= 2.
B (input) COMPLEX*16 array, dimension (LDB, 2)
On entry, the leading 2-by-2 upper triangular part of
this array must contain the matrix B of the pencil.
The (2,1) entry is not referenced.
LDB INTEGER
The leading dimension of the array B. LDB >= 2.
CO1 (output) DOUBLE PRECISION
The upper left element of the unitary matrix Q1.
SI1 (output) COMPLEX*16
The upper right element of the unitary matrix Q1.
CO2 (output) DOUBLE PRECISION
The upper left element of the unitary matrix Q2.
SI2 (output) COMPLEX*16
The upper right element of the unitary matrix Q2.

**Method**
The algorithm uses unitary transformations as described on page 42
in [1].

**References**
[1] Benner, P., Byers, R., Mehrmann, V. and Xu, H.
Numerical Computation of Deflating Subspaces of Embedded
Hamiltonian Pencils.
Tech. Rep. SFB393/99-15, Technical University Chemnitz,
Germany, June 1999.

**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**