LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine zunt03 | ( | character*( * ) | rc, |
integer | mu, | ||
integer | mv, | ||
integer | n, | ||
integer | k, | ||
complex*16, dimension( ldu, * ) | u, | ||
integer | ldu, | ||
complex*16, dimension( ldv, * ) | v, | ||
integer | ldv, | ||
complex*16, dimension( * ) | work, | ||
integer | lwork, | ||
double precision, dimension( * ) | rwork, | ||
double precision | result, | ||
integer | info ) |
ZUNT03
!> !> 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. !>
[in] | 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. !> |
[in] | 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. !> |
[in] | 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. !> |
[in] | 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. !> |
[in] | K | !> K is INTEGER !> The number of rows or columns of U and V to compare. !> 0 <= K <= max(MU,MV). !> |
[in] | 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. !> |
[in] | LDU | !> LDU is INTEGER !> The leading dimension of U. If RC = 'R', LDU >= max(1,MU), !> and if RC = 'C', LDU >= max(1,N). !> |
[in] | 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. !> |
[in] | LDV | !> LDV is INTEGER !> The leading dimension of V. If RC = 'R', LDV >= max(1,MV), !> and if RC = 'C', LDV >= max(1,N). !> |
[out] | WORK | !> WORK is COMPLEX*16 array, dimension (LWORK) !> |
[in] | 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. !> |
[out] | RWORK | !> RWORK is DOUBLE PRECISION array, dimension (max(MV,N)) !> |
[out] | RESULT | !> RESULT is DOUBLE PRECISION !> The value computed by the test described above. RESULT is !> limited to 1/ulp to avoid overflow. !> |
[out] | INFO | !> INFO is INTEGER !> 0 indicates a successful exit !> -k indicates the k-th parameter had an illegal value !> |
Definition at line 160 of file zunt03.f.