ZGET51 generally checks a decomposition of the form
A = U B V**H
where **H means conjugate transpose and U and V are unitary.
Specifically, if ITYPE=1
RESULT = | A - U B V**H | / ( |A| n ulp )
If ITYPE=2, then:
RESULT = | A - B | / ( |A| n ulp )
If ITYPE=3, then:
RESULT = | I - U U**H | / ( n ulp )
ITYPE
ITYPE is INTEGER
Specifies the type of tests to be performed.
=1: RESULT = | A - U B V**H | / ( |A| n ulp )
=2: RESULT = | A - B | / ( |A| n ulp )
=3: RESULT = | I - U U**H | / ( n ulp )
N
N is INTEGER
The size of the matrix. If it is zero, ZGET51 does nothing.
It must be at least zero.
A
A is COMPLEX*16 array, dimension (LDA, N)
The original (unfactored) matrix.
LDA
LDA is INTEGER
The leading dimension of A. It must be at least 1
and at least N.
B
B is COMPLEX*16 array, dimension (LDB, N)
The factored matrix.
LDB
LDB is INTEGER
The leading dimension of B. It must be at least 1
and at least N.
U
U is COMPLEX*16 array, dimension (LDU, N)
The unitary matrix on the left-hand side in the
decomposition.
Not referenced if ITYPE=2
LDU
LDU is INTEGER
The leading dimension of U. LDU must be at least N and
at least 1.
V
V is COMPLEX*16 array, dimension (LDV, N)
The unitary matrix on the left-hand side in the
decomposition.
Not referenced if ITYPE=2
LDV
LDV is INTEGER
The leading dimension of V. LDV must be at least N and
at least 1.
WORK
WORK is COMPLEX*16 array, dimension (2*N**2)
RWORK
RWORK is DOUBLE PRECISION array, dimension (N)
RESULT
RESULT is DOUBLE PRECISION
The values computed by the test specified by ITYPE. The
value is currently limited to 1/ulp, to avoid overflow.
Errors are flagged by RESULT=10/ulp.