Purpose
To apply a special transformation to a system given as a triple
(A,B,C),
A <-- P * A' * P, B <-- P * C', C <-- B' * P,
where P is a matrix with 1 on the secondary diagonal, and with 0
in the other entries. Matrix A can be specified as a band matrix.
Optionally, matrix D of the system can be transposed. This
transformation is actually a special similarity transformation of
the dual system.
Specification
SUBROUTINE TB01XZ( JOBD, N, M, P, KL, KU, A, LDA, B, LDB, C, LDC,
$ D, LDD, INFO )
C .. Scalar Arguments ..
CHARACTER JOBD
INTEGER INFO, KL, KU, LDA, LDB, LDC, LDD, M, N, P
C .. Array Arguments ..
COMPLEX*16 A( LDA, * ), B( LDB, * ), C( LDC, * ),
$ D( LDD, * )
Arguments
Mode Parameters
JOBD CHARACTER*1
Specifies whether or not a non-zero matrix D appears in
the given state space model:
= 'D': D is present;
= 'Z': D is assumed a zero matrix.
Input/Output Parameters
N (input) INTEGER
The order of the matrix A, the number of rows of matrix B
and the number of columns of matrix C.
N represents the dimension of the state vector. N >= 0.
M (input) INTEGER.
The number of columns of matrix B.
M represents the dimension of input vector. M >= 0.
P (input) INTEGER.
The number of rows of matrix C.
P represents the dimension of output vector. P >= 0.
KL (input) INTEGER
The number of subdiagonals of A to be transformed.
MAX( 0, N-1 ) >= KL >= 0.
KU (input) INTEGER
The number of superdiagonals of A to be transformed.
MAX( 0, N-1 ) >= KU >= 0.
A (input/output) COMPLEX*16 array, dimension (LDA,N)
On entry, the leading N-by-N part of this array must
contain the system state matrix A.
On exit, the leading N-by-N part of this array contains
the transformed (pertransposed) matrix P*A'*P.
LDA INTEGER
The leading dimension of the array A. LDA >= MAX(1,N).
B (input/output) COMPLEX*16 array, dimension (LDB,MAX(M,P))
On entry, the leading N-by-M part of this array must
contain the original input/state matrix B.
On exit, the leading N-by-P part of this array contains
the dual input/state matrix P*C'.
LDB INTEGER
The leading dimension of the array B.
LDB >= MAX(1,N) if M > 0 or P > 0.
LDB >= 1 if M = 0 and P = 0.
C (input/output) COMPLEX*16 array, dimension (LDC,N)
On entry, the leading P-by-N part of this array must
contain the original state/output matrix C.
On exit, the leading M-by-N part of this array contains
the dual state/output matrix B'*P.
LDC INTEGER
The leading dimension of array C.
LDC >= MAX(1,M,P) if N > 0.
LDC >= 1 if N = 0.
D (input/output) COMPLEX*16 array, dimension (LDD,MAX(M,P))
On entry, if JOBD = 'D', the leading P-by-M part of this
array must contain the original direct transmission
matrix D.
On exit, if JOBD = 'D', the leading M-by-P part of this
array contains the transposed direct transmission matrix
D'. The array D is not referenced if JOBD = 'Z'.
LDD INTEGER
The leading dimension of array D.
LDD >= MAX(1,M,P) if JOBD = 'D'.
LDD >= 1 if JOBD = 'Z'.
Error Indicator
INFO INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal
value.
Method
The rows and/or columns of the matrices of the triplet (A,B,C) and, optionally, of the matrix D are swapped in a special way.Numerical Aspects
None.Further Comments
NoneExample
Program Text
NoneProgram Data
NoneProgram Results
None