.TH "TESTING/EIG/dgsvts3.f" 3 "Version 3.12.0" "LAPACK" \" -*- nroff -*- .ad l .nh .SH NAME TESTING/EIG/dgsvts3.f .SH SYNOPSIS .br .PP .SS "Functions/Subroutines" .in +1c .ti -1c .RI "subroutine \fBdgsvts3\fP (m, p, n, a, af, lda, b, bf, ldb, u, ldu, v, ldv, q, ldq, alpha, beta, r, ldr, iwork, work, lwork, rwork, result)" .br .RI "\fBDGSVTS3\fP " .in -1c .SH "Function/Subroutine Documentation" .PP .SS "subroutine dgsvts3 (integer m, integer p, integer n, double precision, dimension( lda, * ) a, double precision, dimension( lda, * ) af, integer lda, double precision, dimension( ldb, * ) b, double precision, dimension( ldb, * ) bf, integer ldb, double precision, dimension( ldu, * ) u, integer ldu, double precision, dimension( ldv, * ) v, integer ldv, double precision, dimension( ldq, * ) q, integer ldq, double precision, dimension( * ) alpha, double precision, dimension( * ) beta, double precision, dimension( ldr, * ) r, integer ldr, integer, dimension( * ) iwork, double precision, dimension( lwork ) work, integer lwork, double precision, dimension( * ) rwork, double precision, dimension( 6 ) result)" .PP \fBDGSVTS3\fP .PP \fBPurpose:\fP .RS 4 .PP .nf DGSVTS3 tests DGGSVD3, 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\&. .fi .PP .RE .PP \fBParameters\fP .RS 4 \fIM\fP .PP .nf M is INTEGER The number of rows of the matrix A\&. M >= 0\&. .fi .PP .br \fIP\fP .PP .nf P is INTEGER The number of rows of the matrix B\&. P >= 0\&. .fi .PP .br \fIN\fP .PP .nf N is INTEGER The number of columns of the matrices A and B\&. N >= 0\&. .fi .PP .br \fIA\fP .PP .nf A is DOUBLE PRECISION array, dimension (LDA,M) The M-by-N matrix A\&. .fi .PP .br \fIAF\fP .PP .nf AF is DOUBLE PRECISION array, dimension (LDA,N) Details of the GSVD of A and B, as returned by DGGSVD3, see DGGSVD3 for further details\&. .fi .PP .br \fILDA\fP .PP .nf LDA is INTEGER The leading dimension of the arrays A and AF\&. LDA >= max( 1,M )\&. .fi .PP .br \fIB\fP .PP .nf B is DOUBLE PRECISION array, dimension (LDB,P) On entry, the P-by-N matrix B\&. .fi .PP .br \fIBF\fP .PP .nf BF is DOUBLE PRECISION array, dimension (LDB,N) Details of the GSVD of A and B, as returned by DGGSVD3, see DGGSVD3 for further details\&. .fi .PP .br \fILDB\fP .PP .nf LDB is INTEGER The leading dimension of the arrays B and BF\&. LDB >= max(1,P)\&. .fi .PP .br \fIU\fP .PP .nf U is DOUBLE PRECISION array, dimension(LDU,M) The M by M orthogonal matrix U\&. .fi .PP .br \fILDU\fP .PP .nf LDU is INTEGER The leading dimension of the array U\&. LDU >= max(1,M)\&. .fi .PP .br \fIV\fP .PP .nf V is DOUBLE PRECISION array, dimension(LDV,M) The P by P orthogonal matrix V\&. .fi .PP .br \fILDV\fP .PP .nf LDV is INTEGER The leading dimension of the array V\&. LDV >= max(1,P)\&. .fi .PP .br \fIQ\fP .PP .nf Q is DOUBLE PRECISION array, dimension(LDQ,N) The N by N orthogonal matrix Q\&. .fi .PP .br \fILDQ\fP .PP .nf LDQ is INTEGER The leading dimension of the array Q\&. LDQ >= max(1,N)\&. .fi .PP .br \fIALPHA\fP .PP .nf ALPHA is DOUBLE PRECISION array, dimension (N) .fi .PP .br \fIBETA\fP .PP .nf 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 DGGSVD3 for details\&. .fi .PP .br \fIR\fP .PP .nf R is DOUBLE PRECISION array, dimension(LDQ,N) The upper triangular matrix R\&. .fi .PP .br \fILDR\fP .PP .nf LDR is INTEGER The leading dimension of the array R\&. LDR >= max(1,N)\&. .fi .PP .br \fIIWORK\fP .PP .nf IWORK is INTEGER array, dimension (N) .fi .PP .br \fIWORK\fP .PP .nf WORK is DOUBLE PRECISION array, dimension (LWORK) .fi .PP .br \fILWORK\fP .PP .nf LWORK is INTEGER The dimension of the array WORK, LWORK >= max(M,P,N)*max(M,P,N)\&. .fi .PP .br \fIRWORK\fP .PP .nf RWORK is DOUBLE PRECISION array, dimension (max(M,P,N)) .fi .PP .br \fIRESULT\fP .PP .nf 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\&. .fi .PP .RE .PP \fBAuthor\fP .RS 4 Univ\&. of Tennessee .PP Univ\&. of California Berkeley .PP Univ\&. of Colorado Denver .PP NAG Ltd\&. .RE .PP .PP Definition at line \fB207\fP of file \fBdgsvts3\&.f\fP\&. .SH "Author" .PP Generated automatically by Doxygen for LAPACK from the source code\&.