TESTING/MATGEN/claror.f(3)

NAME
TESTING/MATGEN/claror.f

SYNOPSIS

  Functions/Subroutines
subroutine claror (side, init, m, n, a, lda, iseed, x, info)
CLAROR

Function/Subroutine Documentation

  subroutine claror (character side, character init, integer m, integer n, complex, dimension( lda, * ) a, integer lda, integer, dimension( 4 ) iseed, complex, dimension( * ) x, integer info)

CLAROR

Purpose:

    !>
    !>    CLAROR pre- or post-multiplies an M by N matrix A by a random
    !>    unitary matrix U, overwriting A. A may optionally be
    !>    initialized to the identity matrix before multiplying by U.
    !>    U is generated using the method of G.W. Stewart
    !>    ( SIAM J. Numer. Anal. 17, 1980, pp. 403-409 ).
    !>    (BLAS-2 version)
    !>

Parameters
    SIDE

    !>          SIDE is CHARACTER*1
    !>           SIDE specifies whether A is multiplied on the left or right
    !>           by U.
    !>       SIDE = 'L'   Multiply A on the left (premultiply) by U
    !>       SIDE = 'R'   Multiply A on the right (postmultiply) by UC>       SIDE = 'C'   Multiply A on the left by U and the right by UC>       SIDE = 'T'   Multiply A on the left by U and the right by U'
    !>           Not modified.
    !>

    INIT

    !>          INIT is CHARACTER*1
    !>           INIT specifies whether or not A should be initialized to
    !>           the identity matrix.
    !>              INIT = 'I'   Initialize A to (a section of) the
    !>                           identity matrix before applying U.
    !>              INIT = 'N'   No initialization.  Apply U to the
    !>                           input matrix A.
    !>
    !>           INIT = 'I' may be used to generate square (i.e., unitary)
    !>           or rectangular orthogonal matrices (orthogonality being
    !>           in the sense of CDOTC):
    !>
    !>           For square matrices, M=N, and SIDE many be either 'L' or
    !>           'R'; the rows will be orthogonal to each other, as will the
    !>           columns.
    !>           For rectangular matrices where M < N, SIDE = 'R' will
    !>           produce a dense matrix whose rows will be orthogonal and
    !>           whose columns will not, while SIDE = 'L' will produce a
    !>           matrix whose rows will be orthogonal, and whose first M
    !>           columns will be orthogonal, the remaining columns being
    !>           zero.
    !>           For matrices where M > N, just use the previous
    !>           explanation, interchanging 'L' and 'R' and  and
    !>           .
    !>
    !>           Not modified.
    !>

    M

    !>          M is INTEGER
    !>           Number of rows of A. Not modified.
    !>

    N

    !>          N is INTEGER
    !>           Number of columns of A. Not modified.
    !>

    A

    !>          A is COMPLEX array, dimension ( LDA, N )
    !>           Input and output array. Overwritten by U A ( if SIDE = 'L' )
    !>           or by A U ( if SIDE = 'R' )
    !>           or by U A U* ( if SIDE = 'C')
    !>           or by U A U' ( if SIDE = 'T') on exit.
    !>

    LDA

    !>          LDA is INTEGER
    !>           Leading dimension of A. Must be at least MAX ( 1, M ).
    !>           Not modified.
    !>

    ISEED

    !>          ISEED is INTEGER array, dimension ( 4 )
    !>           On entry ISEED specifies the seed of the random number
    !>           generator. The array elements should be between 0 and 4095;
    !>           if not they will be reduced mod 4096.  Also, ISEED(4) must
    !>           be odd.  The random number generator uses a linear
    !>           congruential sequence limited to small integers, and so
    !>           should produce machine independent random numbers. The
    !>           values of ISEED are changed on exit, and can be used in the
    !>           next call to CLAROR to continue the same random number
    !>           sequence.
    !>           Modified.
    !>

    X

    !>          X is COMPLEX array, dimension ( 3*MAX( M, N ) )
    !>           Workspace. Of length:
    !>               2*M + N if SIDE = 'L',
    !>               2*N + M if SIDE = 'R',
    !>               3*N     if SIDE = 'C' or 'T'.
    !>           Modified.
    !>

    INFO

    !>          INFO is INTEGER
    !>           An error flag.  It is set to:
    !>            0  if no error.
    !>            1  if CLARND returned a bad random number (installation
    !>               problem)
    !>           -1  if SIDE is not L, R, C, or T.
    !>           -3  if M is negative.
    !>           -4  if N is negative or if SIDE is C or T and N is not equal
    !>               to M.
    !>           -6  if LDA is less than M.
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Definition at line 157 of file claror.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.