ZUNT03 compares two unitary matrices U and V to see if their
corresponding rows or columns span the same spaces. The rows are
checked if RC = 'R', and the columns are checked if RC = 'C'.
RESULT is the maximum of
| V*V' - I | / ( MV ulp ), if RC = 'R', or
| V'*V - I | / ( MV ulp ), if RC = 'C',
and the maximum over rows (or columns) 1 to K of
| U(i) - S*V(i) |/ ( N ulp )
where abs(S) = 1 (chosen to minimize the expression), U(i) is the
i-th row (column) of U, and V(i) is the i-th row (column) of V.
RC
RC is CHARACTER*1
If RC = 'R' the rows of U and V are to be compared.
If RC = 'C' the columns of U and V are to be compared.
MU
MU is INTEGER
The number of rows of U if RC = 'R', and the number of
columns if RC = 'C'. If MU = 0 ZUNT03 does nothing.
MU must be at least zero.
MV
MV is INTEGER
The number of rows of V if RC = 'R', and the number of
columns if RC = 'C'. If MV = 0 ZUNT03 does nothing.
MV must be at least zero.
N
N is INTEGER
If RC = 'R', the number of columns in the matrices U and V,
and if RC = 'C', the number of rows in U and V. If N = 0
ZUNT03 does nothing. N must be at least zero.
K
K is INTEGER
The number of rows or columns of U and V to compare.
0 <= K <= max(MU,MV).
U
U is COMPLEX*16 array, dimension (LDU,N)
The first matrix to compare. If RC = 'R', U is MU by N, and
if RC = 'C', U is N by MU.
LDU
LDU is INTEGER
The leading dimension of U. If RC = 'R', LDU >= max(1,MU),
and if RC = 'C', LDU >= max(1,N).
V
V is COMPLEX*16 array, dimension (LDV,N)
The second matrix to compare. If RC = 'R', V is MV by N, and
if RC = 'C', V is N by MV.
LDV
LDV is INTEGER
The leading dimension of V. If RC = 'R', LDV >= max(1,MV),
and if RC = 'C', LDV >= max(1,N).
WORK
WORK is COMPLEX*16 array, dimension (LWORK)
LWORK
LWORK is INTEGER
The length of the array WORK. For best performance, LWORK
should be at least N*N if RC = 'C' or M*M if RC = 'R', but
the tests will be done even if LWORK is 0.
RWORK
RWORK is DOUBLE PRECISION array, dimension (max(MV,N))
RESULT
RESULT is DOUBLE PRECISION
The value computed by the test described above. RESULT is
limited to 1/ulp to avoid overflow.
INFO
INFO is INTEGER
0 indicates a successful exit
-k indicates the k-th parameter had an illegal value