TESTING/EIG/zunt01.f(3) Library Functions Manual TESTING/EIG/zunt01.f(3)

TESTING/EIG/zunt01.f


subroutine zunt01 (rowcol, m, n, u, ldu, work, lwork, rwork, resid)
ZUNT01

ZUNT01

Purpose:

 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'.

Parameters

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

M

          M is INTEGER
          The number of rows of the matrix U.

N

          N is INTEGER
          The number of columns of the matrix U.

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'.

LDU

          LDU is INTEGER
          The leading dimension of the array U.  LDU >= max(1,M).

WORK

          WORK is COMPLEX*16 array, dimension (LWORK)

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.

RWORK

          RWORK is DOUBLE PRECISION array, dimension (min(M,N))
          Used only if LWORK is large enough to use the Level 3 BLAS
          code.

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'.

Author

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

Definition at line 124 of file zunt01.f.

Generated automatically by Doxygen for LAPACK from the source code.

Version 3.12.0 LAPACK