CUNT03

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

Purpose

CUNT03 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 CUNT03 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 CUNT03 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
CUNT03 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 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 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 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) REAL array, dimension (max(MV,N))
RESULT
(output) REAL
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