LAPACK
3.6.1
LAPACK: Linear Algebra PACKage
|
subroutine zunt01 | ( | character | ROWCOL, |
integer | M, | ||
integer | N, | ||
complex*16, dimension( ldu, * ) | U, | ||
integer | LDU, | ||
complex*16, dimension( * ) | WORK, | ||
integer | LWORK, | ||
double precision, dimension( * ) | RWORK, | ||
double precision | RESID | ||
) |
ZUNT01
ZUNT01 checks that the matrix U is unitary by computing the ratio RESID = norm( I - U*U' ) / ( n * EPS ), if ROWCOL = 'R', or RESID = norm( I - U'*U ) / ( m * EPS ), if ROWCOL = 'C'. Alternatively, if there isn't sufficient workspace to form I - U*U' or I - U'*U, the ratio is computed as RESID = abs( I - U*U' ) / ( n * EPS ), if ROWCOL = 'R', or RESID = abs( I - U'*U ) / ( m * EPS ), if ROWCOL = 'C'. where EPS is the machine precision. ROWCOL is used only if m = n; if m > n, ROWCOL is assumed to be 'C', and if m < n, ROWCOL is assumed to be 'R'.
[in] | ROWCOL | ROWCOL is CHARACTER Specifies whether the rows or columns of U should be checked for orthogonality. Used only if M = N. = 'R': Check for orthogonal rows of U = 'C': Check for orthogonal columns of U |
[in] | M | M is INTEGER The number of rows of the matrix U. |
[in] | N | N is INTEGER The number of columns of the matrix U. |
[in] | U | U is COMPLEX*16 array, dimension (LDU,N) The unitary matrix U. U is checked for orthogonal columns if m > n or if m = n and ROWCOL = 'C'. U is checked for orthogonal rows if m < n or if m = n and ROWCOL = 'R'. |
[in] | LDU | LDU is INTEGER The leading dimension of the array U. LDU >= max(1,M). |
[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 ROWCOL = 'C' or M*M if ROWCOL = 'R', but the test will be done even if LWORK is 0. |
[out] | RWORK | RWORK is DOUBLE PRECISION array, dimension (min(M,N)) Used only if LWORK is large enough to use the Level 3 BLAS code. |
[out] | RESID | RESID is DOUBLE PRECISION RESID = norm( I - U * U' ) / ( n * EPS ), if ROWCOL = 'R', or RESID = norm( I - U' * U ) / ( m * EPS ), if ROWCOL = 'C'. |
Definition at line 128 of file zunt01.f.