DQRT03

   Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd..
   November 2006

Purpose

DQRT03 tests DORMQR, which computes Q*C, Q'*C, C*Q or C*Q'.

DQRT03 compares the results of a call to DORMQR with the results of
forming Q explicitly by a call to DORGQR and then performing matrix
multiplication by a call to DGEMM.

Arguments

M
(input) INTEGER
The order of the orthogonal matrix Q.  M >= 0.
N
(input) INTEGER
The number of rows or columns of the matrix C; C is m-by-n if
Q is applied from the left, or n-by-m if Q is applied from
the right.  N >= 0.
K
(input) INTEGER
The number of elementary reflectors whose product defines the
orthogonal matrix Q.  M >= K >= 0.
AF
(input) DOUBLE PRECISION array, dimension (LDA,N)
Details of the QR factorization of an m-by-n matrix, as
returnedby DGEQRF. See SGEQRF for further details.
C
(workspace) DOUBLE PRECISION array, dimension (LDA,N)
CC
(workspace) DOUBLE PRECISION array, dimension (LDA,N)
Q
(workspace) DOUBLE PRECISION array, dimension (LDA,M)
LDA
(input) INTEGER
The leading dimension of the arrays AF, C, CC, and Q.
TAU
(input) DOUBLE PRECISION array, dimension (min(M,N))
The scalar factors of the elementary reflectors corresponding
to the QR factorization in AF.
WORK
(workspace) DOUBLE PRECISION array, dimension (LWORK)
LWORK
(input) INTEGER
The length of WORK.  LWORK must be at least M, and should be
M*NB, where NB is the blocksize for this environment.
RWORK
(workspace) DOUBLE PRECISION array, dimension (M)
RESULT
(output) DOUBLE PRECISION array, dimension (4)
The test ratios compare two techniques for multiplying a
random matrix C by an m-by-m orthogonal matrix Q.
RESULT(1) = norm( Q*C - Q*C )  / ( M * norm(C) * EPS )
RESULT(2) = norm( C*Q - C*Q )  / ( M * norm(C) * EPS )
RESULT(3) = norm( Q'*C - Q'*C )/ ( M * norm(C) * EPS )
RESULT(4) = norm( C*Q' - C*Q' )/ ( M * norm(C) * EPS )

Call Graph

Caller Graph