CUNHR_COL01 tests CUNGTSQR and CUNHR_COL using CLATSQR, CGEMQRT.
Therefore, CLATSQR (part of CGEQR), CGEMQRT (part of CGEMQR)
have to be tested before this test.
M
M is INTEGER
Number of rows in test matrix.
N
N is INTEGER
Number of columns in test matrix.
MB1
MB1 is INTEGER
Number of row in row block in an input test matrix.
NB1
NB1 is INTEGER
Number of columns in column block an input test matrix.
NB2
NB2 is INTEGER
Number of columns in column block in an output test matrix.
RESULT
RESULT is REAL array, dimension (6)
Results of each of the six tests below.
A is a m-by-n test input matrix to be factored.
so that A = Q_gr * ( R )
( 0 ),
Q_qr is an implicit m-by-m unitary Q matrix, the result
of factorization in blocked WY-representation,
stored in CGEQRT output format.
R is a n-by-n upper-triangular matrix,
0 is a (m-n)-by-n zero matrix,
Q is an explicit m-by-m unitary matrix Q = Q_gr * I
C is an m-by-n random matrix,
D is an n-by-m random matrix.
The six tests are:
RESULT(1) = |R - (Q**H) * A| / ( eps * m * |A| )
is equivalent to test for | A - Q * R | / (eps * m * |A|),
RESULT(2) = |I - (Q**H) * Q| / ( eps * m ),
RESULT(3) = | Q_qr * C - Q * C | / (eps * m * |C|),
RESULT(4) = | (Q_gr**H) * C - (Q**H) * C | / (eps * m * |C|)
RESULT(5) = | D * Q_qr - D * Q | / (eps * m * |D|)
RESULT(6) = | D * (Q_qr**H) - D * (Q**H) | / (eps * m * |D|),
where:
Q_qr * C, (Q_gr**H) * C, D * Q_qr, D * (Q_qr**H) are
computed using CGEMQRT,
Q * C, (Q**H) * C, D * Q, D * (Q**H) are
computed using CGEMM.