ZGQRTS

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

Purpose

ZGQRTS tests ZGGQRF, 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) COMPLEX*16 array, dimension (LDA,M)
The N-by-M matrix A.
AF
(output) COMPLEX*16 array, dimension (LDA,N)
Details of the GQR factorization of A and B, as returned
by ZGGQRF, see CGGQRF for further details.
Q
(output) COMPLEX*16 array, dimension (LDA,N)
The M-by-M unitary matrix Q.
R
(workspace) COMPLEX*16 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) COMPLEX*16 array, dimension (min(M,N))
The scalar factors of the elementary reflectors, as returned
by ZGGQRF.
B
(input) COMPLEX*16 array, dimension (LDB,P)
On entry, the N-by-P matrix A.
BF
(output) COMPLEX*16 array, dimension (LDB,N)
Details of the GQR factorization of A and B, as returned
by ZGGQRF, see CGGQRF for further details.
Z
(output) COMPLEX*16 array, dimension (LDB,P)
The P-by-P unitary matrix Z.
T
(workspace) COMPLEX*16 array, dimension (LDB,max(P,N))
BWK
(workspace) COMPLEX*16 array, dimension (LDB,N)
LDB
(input) INTEGER
The leading dimension of the arrays B, BF, Z and T.
LDB >= max(P,N).
TAUB
(output) COMPLEX*16 array, dimension (min(P,N))
The scalar factors of the elementary reflectors, as returned
by DGGRQF.
WORK
(workspace) COMPLEX*16 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