SGET51 generally checks a decomposition of the form
A = U B V'
where ' means transpose and U and V are orthogonal.
Specifically, if ITYPE=1
RESULT = | A - U B V' | / ( |A| n ulp )
If ITYPE=2, then:
RESULT = | A - B | / ( |A| n ulp )
If ITYPE=3, then:
RESULT = | I - UU' | / ( n ulp )
ITYPE
ITYPE is INTEGER
Specifies the type of tests to be performed.
=1: RESULT = | A - U B V' | / ( |A| n ulp )
=2: RESULT = | A - B | / ( |A| n ulp )
=3: RESULT = | I - UU' | / ( n ulp )
N
N is INTEGER
The size of the matrix. If it is zero, SGET51 does nothing.
It must be at least zero.
A
A is REAL 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 REAL 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 REAL array, dimension (LDU, N)
The orthogonal 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 REAL array, dimension (LDV, N)
The orthogonal 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 REAL array, dimension (2*N**2)
RESULT
RESULT is REAL
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.