zlaror.f3
Usage
Functions/Subroutines
subroutine zlaror (side, init, m, n, a, lda, iseed, x, info)
ZLAROR
Function/Subroutine Documentation
subroutine zlaror (character side, character init, integer m, integer n, complex*16, dimension( lda, * ) a, integer lda, integer, dimension( 4 ) iseed, complex*16, dimension( * ) x, integer info)
ZLAROR
Purpose:
!> !> ZLAROR 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 ZDOTC): !> !> 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*16 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 ZLAROR to continue the same random number
!> sequence.
!> Modified.
!>
X
!> X is COMPLEX*16 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 ZLARND 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 zlaror.f.