dlaror.f3
Usage
Functions/Subroutines
subroutine dlaror (side, init, m, n, a, lda, iseed, x, info)
DLAROR
Function/Subroutine Documentation
subroutine dlaror (character side, character init, integer m, integer n, double precision, dimension( lda, * ) a, integer lda, integer, dimension( 4 ) iseed, double precision, dimension( * ) x, integer info)
DLAROR
Purpose:
!> !> DLAROR pre- or post-multiplies an M by N matrix A by a random !> orthogonal 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, 403-409). !>
Parameters
SIDE
!> SIDE is CHARACTER*1 !> Specifies whether A is multiplied on the left or right by U. !> = 'L': Multiply A on the left (premultiply) by U !> = 'R': Multiply A on the right (postmultiply) by U' !> = 'C' or 'T': Multiply A on the left by U and the right !> by U' (Here, U' means U-transpose.) !>
INIT
!> INIT is CHARACTER*1 !> Specifies whether or not A should be initialized to the !> identity matrix. !> = 'I': Initialize A to (a section of) the identity matrix !> before applying U. !> = 'N': No initialization. Apply U to the input matrix A. !> !> INIT = 'I' may be used to generate square or rectangular !> orthogonal matrices: !> !> For M = N and SIDE = 'L' or 'R', the rows will be orthogonal !> to each other, as will the columns. !> !> If M < N, SIDE = 'R' produces a dense matrix whose rows are !> orthogonal and whose columns are not, while SIDE = 'L' !> produces a matrix whose rows are orthogonal, and whose first !> M columns are orthogonal, and whose remaining columns are !> zero. !> !> If M > N, SIDE = 'L' produces a dense matrix whose columns !> are orthogonal and whose rows are not, while SIDE = 'R' !> produces a matrix whose columns are orthogonal, and whose !> first M rows are orthogonal, and whose remaining rows are !> zero. !>
M
!> M is INTEGER !> The number of rows of A. !>
N
!> N is INTEGER !> The number of columns of A. !>
A
!> A is DOUBLE PRECISION array, dimension (LDA, N) !> On entry, the array A. !> On exit, overwritten by U A ( if SIDE = 'L' ), !> or by A U ( if SIDE = 'R' ), !> or by U A U' ( if SIDE = 'C' or 'T'). !>
LDA
!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,M). !>
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 DLAROR to continue the same random number
!> sequence.
!>
X
!> X is DOUBLE PRECISION 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'. !>
INFO
!> INFO is INTEGER !> An error flag. It is set to: !> = 0: normal return !> < 0: if INFO = -k, the k-th argument had an illegal value !> = 1: if the random numbers generated by DLARND are bad. !>
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 145 of file dlaror.f.