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
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None