TESTING/EIG/sgsvts3.f(3)

NAME
TESTING/EIG/sgsvts3.f

SYNOPSIS

  Functions/Subroutines
subroutine sgsvts3 (m, p, n, a, af, lda, b, bf, ldb, u, ldu, v, ldv, q, ldq, alpha, beta, r, ldr, iwork, work, lwork, rwork, result)
SGSVTS3

Function/Subroutine Documentation

  subroutine sgsvts3 (integer m, integer p, integer n, real, dimension( lda, * ) a, real, dimension( lda, * ) af, integer lda, real, dimension( ldb, * ) b, real, dimension( ldb, * ) bf, integer ldb, real, dimension( ldu, * ) u, integer ldu, real, dimension( ldv, * ) v, integer ldv, real, dimension( ldq, * ) q, integer ldq, real, dimension( * ) alpha, real, dimension( * ) beta, real, dimension( ldr, * ) r, integer ldr, integer, dimension( * ) iwork, real, dimension( lwork ) work, integer lwork, real, dimension( * ) rwork, real, dimension( 6 ) result)

SGSVTS3

Purpose:

    !>
    !> SGSVTS3 tests SGGSVD3, 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 REAL array, dimension (LDA,M)
    !>          The M-by-N matrix A.
    !>

    AF

    !>          AF is REAL array, dimension (LDA,N)
    !>          Details of the GSVD of A and B, as returned by SGGSVD3,
    !>          see SGGSVD3 for further details.
    !>

    LDA

    !>          LDA is INTEGER
    !>          The leading dimension of the arrays A and AF.
    !>          LDA >= max( 1,M ).
    !>

    B

    !>          B is REAL array, dimension (LDB,P)
    !>          On entry, the P-by-N matrix B.
    !>

    BF

    !>          BF is REAL array, dimension (LDB,N)
    !>          Details of the GSVD of A and B, as returned by SGGSVD3,
    !>          see SGGSVD3 for further details.
    !>

    LDB

    !>          LDB is INTEGER
    !>          The leading dimension of the arrays B and BF.
    !>          LDB >= max(1,P).
    !>

    U

    !>          U is REAL array, dimension(LDU,M)
    !>          The M by M orthogonal matrix U.
    !>

    LDU

    !>          LDU is INTEGER
    !>          The leading dimension of the array U. LDU >= max(1,M).
    !>

    V

    !>          V is REAL array, dimension(LDV,M)
    !>          The P by P orthogonal matrix V.
    !>

    LDV

    !>          LDV is INTEGER
    !>          The leading dimension of the array V. LDV >= max(1,P).
    !>

    Q

    !>          Q is REAL array, dimension(LDQ,N)
    !>          The N by N orthogonal matrix Q.
    !>

    LDQ

    !>          LDQ is INTEGER
    !>          The leading dimension of the array Q. LDQ >= max(1,N).
    !>

    ALPHA

    !>          ALPHA is REAL array, dimension (N)
    !>

    BETA

    !>          BETA is REAL 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 SGGSVD3 for details.
    !>

    R

    !>          R is REAL 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 REAL 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 REAL array, dimension (max(M,P,N))
    !>

    RESULT

    !>          RESULT is REAL 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 207 of file sgsvts3.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.