DGQRTS

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

Purpose

DGQRTS tests DGGQRF, which computes the GQR factorization of an
N-by-M matrix A and a N-by-P matrix B: A = Q*R and B = Q*T*Z.

Arguments

N
(input) INTEGER
The number of rows of the matrices A and B.  N >= 0.
M
(input) INTEGER
The number of columns of the matrix A.  M >= 0.
P
(input) INTEGER
The number of columns of the matrix B.  P >= 0.
A
(input) DOUBLE PRECISION array, dimension (LDA,M)
The N-by-M matrix A.
AF
(output) DOUBLE PRECISION array, dimension (LDA,N)
Details of the GQR factorization of A and B, as returned
by DGGQRF, see SGGQRF for further details.
Q
(output) DOUBLE PRECISION array, dimension (LDA,N)
The M-by-M orthogonal matrix Q.
R
(workspace) DOUBLE PRECISION array, dimension (LDA,MAX(M,N))
LDA
(input) INTEGER
The leading dimension of the arrays A, AF, R and Q.
LDA >= max(M,N).
TAUA
(output) DOUBLE PRECISION array, dimension (min(M,N))
The scalar factors of the elementary reflectors, as returned
by DGGQRF.
B
(input) DOUBLE PRECISION array, dimension (LDB,P)
On entry, the N-by-P matrix A.
BF
(output) DOUBLE PRECISION array, dimension (LDB,N)
Details of the GQR factorization of A and B, as returned
by DGGQRF, see SGGQRF for further details.
Z
(output) DOUBLE PRECISION array, dimension (LDB,P)
The P-by-P orthogonal matrix Z.
T
(workspace) DOUBLE PRECISION array, dimension (LDB,max(P,N))
BWK
(workspace) DOUBLE PRECISION array, dimension (LDB,N)
LDB
(input) INTEGER
The leading dimension of the arrays B, BF, Z and T.
LDB >= max(P,N).
TAUB
(output) DOUBLE PRECISION array, dimension (min(P,N))
The scalar factors of the elementary reflectors, as returned
by DGGRQF.
WORK
(workspace) DOUBLE PRECISION array, dimension (LWORK)
LWORK
(input) INTEGER
The dimension of the array WORK, LWORK >= max(N,M,P)**2.
RWORK
(workspace) DOUBLE PRECISION array, dimension (max(N,M,P))
RESULT
(output) DOUBLE PRECISION array, dimension (4)
The test ratios:
  RESULT(1) = norm( R - Q'*A ) / ( MAX(M,N)*norm(A)*ULP)
  RESULT(2) = norm( T*Z - Q'*B ) / (MAX(P,N)*norm(B)*ULP)
  RESULT(3) = norm( I - Q'*Q ) / ( M*ULP )
  RESULT(4) = norm( I - Z'*Z ) / ( P*ULP )

Call Graph

Caller Graph