DORHR_COL02 tests DORGTSQR_ROW and DORHR_COL inside DGETSQRHRT
(which calls DLATSQR, DORGTSQR_ROW and DORHR_COL) using DGEMQRT.
Therefore, DLATSQR (part of DGEQR), DGEMQRT (part of DGEMQR)
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 DOUBLE PRECISION 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 orthogonal Q matrix, the result
of factorization in blocked WY-representation,
stored in ZGEQRT 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 orthogonal 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 DGEMQRT,
Q * C, (Q**H) * C, D * Q, D * (Q**H) are
computed using DGEMM.