###
Eigenvalues of a product of matrices in periodic Schur form

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

To compute the eigenvalues of a product of matrices,
T = T_1*T_2*...*T_p, where T_1 is an upper quasi-triangular
matrix and T_2, ..., T_p are upper triangular matrices.

**Specification**
SUBROUTINE MB03WX( N, P, T, LDT1, LDT2, WR, WI, INFO )
C .. Scalar Arguments ..
INTEGER INFO, LDT1, LDT2, N, P
C .. Array Arguments ..
DOUBLE PRECISION T( LDT1, LDT2, * ), WI( * ), WR( * )

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

N (input) INTEGER
The order of the matrix T. N >= 0.
P (input) INTEGER
The number of matrices in the product T_1*T_2*...*T_p.
P >= 1.
T (input) DOUBLE PRECISION array, dimension (LDT1,LDT2,P)
The leading N-by-N part of T(*,*,1) must contain the upper
quasi-triangular matrix T_1 and the leading N-by-N part of
T(*,*,j) for j > 1 must contain the upper-triangular
matrix T_j, j = 2, ..., p.
The elements below the subdiagonal of T(*,*,1) and below
the diagonal of T(*,*,j), j = 2, ..., p, are not
referenced.
LDT1 INTEGER
The first leading dimension of the array T.
LDT1 >= max(1,N).
LDT2 INTEGER
The second leading dimension of the array T.
LDT2 >= max(1,N).
WR, WI (output) DOUBLE PRECISION arrays, dimension (N)
The real and imaginary parts, respectively, of the
eigenvalues of T. The eigenvalues are stored in the same
order as on the diagonal of T_1. If T(i:i+1,i:i+1,1) is a
2-by-2 diagonal block with complex conjugated eigenvalues
then WI(i) > 0 and WI(i+1) = -WI(i).

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

**Further Comments**
None

**Example**
**Program Text**

None

**Program Data**
None

**Program Results**
None

**Return to Supporting Routines index**