ZUNT03

   Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
   November 2006

Purpose

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.

Arguments

RC
(input) 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
(input) 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
(input) 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
(input) 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
(input) INTEGER
The number of rows or columns of U and V to compare.
0 <= K <= max(MU,MV).
U
(input) 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
(input) INTEGER
The leading dimension of U.  If RC = 'R', LDU >= max(1,MU),
and if RC = 'C', LDU >= max(1,N).
V
(input) 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
(input) INTEGER
The leading dimension of V.  If RC = 'R', LDV >= max(1,MV),
and if RC = 'C', LDV >= max(1,N).
WORK
(workspace) COMPLEX*16 array, dimension (LWORK)
LWORK
(input) 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
(workspace) DOUBLE PRECISION array, dimension (max(MV,N))
RESULT
(output) DOUBLE PRECISION
The value computed by the test described above.  RESULT is
limited to 1/ulp to avoid overflow.
INFO
(output) INTEGER
0  indicates a successful exit
-k indicates the k-th parameter had an illegal value

Call Graph

Caller Graph