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.