CUNT03
Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
November 2006
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.
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 |