TESTING/EIG/zgsvts3.f(3) Library Functions Manual TESTING/EIG/zgsvts3.f(3) NAME TESTING/EIG/zgsvts3.f SYNOPSIS Functions/Subroutines subroutine zgsvts3 (m, p, n, a, af, lda, b, bf, ldb, u, ldu, v, ldv, q, ldq, alpha, beta, r, ldr, iwork, work, lwork, rwork, result) ZGSVTS3 Function/Subroutine Documentation subroutine zgsvts3 (integer m, integer p, integer n, complex*16, dimension( lda, * ) a, complex*16, dimension( lda, * ) af, integer lda, complex*16, dimension( ldb, * ) b, complex*16, dimension( ldb, * ) bf, integer ldb, complex*16, dimension( ldu, * ) u, integer ldu, complex*16, dimension( ldv, * ) v, integer ldv, complex*16, dimension( ldq, * ) q, integer ldq, double precision, dimension( * ) alpha, double precision, dimension( * ) beta, complex*16, dimension( ldr, * ) r, integer ldr, integer, dimension( * ) iwork, complex*16, dimension( lwork ) work, integer lwork, double precision, dimension( * ) rwork, double precision, dimension( 6 ) result) ZGSVTS3 Purpose: !> !> ZGSVTS3 tests ZGGSVD3, which computes the GSVD of an M-by-N matrix A !> and a P-by-N matrix B: !> U'*A*Q = D1*R and V'*B*Q = D2*R. !> Parameters M !> M is INTEGER !> The number of rows of the matrix A. M >= 0. !> P !> P is INTEGER !> The number of rows of the matrix B. P >= 0. !> N !> N is INTEGER !> The number of columns of the matrices A and B. N >= 0. !> A !> A is COMPLEX*16 array, dimension (LDA,M) !> The M-by-N matrix A. !> AF !> AF is COMPLEX*16 array, dimension (LDA,N) !> Details of the GSVD of A and B, as returned by ZGGSVD3, !> see ZGGSVD3 for further details. !> LDA !> LDA is INTEGER !> The leading dimension of the arrays A and AF. !> LDA >= max( 1,M ). !> B !> B is COMPLEX*16 array, dimension (LDB,P) !> On entry, the P-by-N matrix B. !> BF !> BF is COMPLEX*16 array, dimension (LDB,N) !> Details of the GSVD of A and B, as returned by ZGGSVD3, !> see ZGGSVD3 for further details. !> LDB !> LDB is INTEGER !> The leading dimension of the arrays B and BF. !> LDB >= max(1,P). !> U !> U is COMPLEX*16 array, dimension(LDU,M) !> The M by M unitary matrix U. !> LDU !> LDU is INTEGER !> The leading dimension of the array U. LDU >= max(1,M). !> V !> V is COMPLEX*16 array, dimension(LDV,M) !> The P by P unitary matrix V. !> LDV !> LDV is INTEGER !> The leading dimension of the array V. LDV >= max(1,P). !> Q !> Q is COMPLEX*16 array, dimension(LDQ,N) !> The N by N unitary matrix Q. !> LDQ !> LDQ is INTEGER !> The leading dimension of the array Q. LDQ >= max(1,N). !> ALPHA !> ALPHA is DOUBLE PRECISION array, dimension (N) !> BETA !> BETA is DOUBLE PRECISION array, dimension (N) !> !> The generalized singular value pairs of A and B, the !> ``diagonal'' matrices D1 and D2 are constructed from !> ALPHA and BETA, see subroutine ZGGSVD3 for details. !> R !> R is COMPLEX*16 array, dimension(LDQ,N) !> The upper triangular matrix R. !> LDR !> LDR is INTEGER !> The leading dimension of the array R. LDR >= max(1,N). !> IWORK !> IWORK is INTEGER array, dimension (N) !> WORK !> WORK is COMPLEX*16 array, dimension (LWORK) !> LWORK !> LWORK is INTEGER !> The dimension of the array WORK, !> LWORK >= max(M,P,N)*max(M,P,N). !> RWORK !> RWORK is DOUBLE PRECISION array, dimension (max(M,P,N)) !> RESULT !> RESULT is DOUBLE PRECISION array, dimension (6) !> The test ratios: !> RESULT(1) = norm( U'*A*Q - D1*R ) / ( MAX(M,N)*norm(A)*ULP) !> RESULT(2) = norm( V'*B*Q - D2*R ) / ( MAX(P,N)*norm(B)*ULP) !> RESULT(3) = norm( I - U'*U ) / ( M*ULP ) !> RESULT(4) = norm( I - V'*V ) / ( P*ULP ) !> RESULT(5) = norm( I - Q'*Q ) / ( N*ULP ) !> RESULT(6) = 0 if ALPHA is in decreasing order; !> = ULPINV otherwise. !> Author Univ. of Tennessee Univ. of California Berkeley Univ. of Colorado Denver NAG Ltd. Definition at line 206 of file zgsvts3.f. Author Generated automatically by Doxygen for LAPACK from the source code. LAPACK Version 3.12.0 TESTING/EIG/zgsvts3.f(3)