dlatm7.f3
Usage
Functions/Subroutines
subroutine dlatm7 (mode, cond, irsign, idist, iseed, d, n, rank, info)
DLATM7
Function/Subroutine Documentation
subroutine dlatm7 (integer mode, double precision cond, integer irsign, integer idist, integer, dimension( 4 ) iseed, double precision, dimension( * ) d, integer n, integer rank, integer info)
DLATM7
Purpose:
!> !> DLATM7 computes the entries of D as specified by MODE !> COND and IRSIGN. IDIST and ISEED determine the generation !> of random numbers. DLATM7 is called by DLATMT to generate !> random test matrices. !>
!> MODE - INTEGER
!> On entry describes how D is to be computed:
!> MODE = 0 means do not change D.
!>
!> MODE = 1 sets D(1)=1 and D(2:RANK)=1.0/COND
!> MODE = 2 sets D(1:RANK-1)=1 and D(RANK)=1.0/COND
!> MODE = 3 sets D(I)=COND**(-(I-1)/(RANK-1)) I=1:RANK
!>
!> MODE = 4 sets D(i)=1 - (i-1)/(N-1)*(1 - 1/COND)
!> MODE = 5 sets D to random numbers in the range
!> ( 1/COND , 1 ) such that their logarithms
!> are uniformly distributed.
!> MODE = 6 set D to random numbers from same distribution
!> as the rest of the matrix.
!> MODE < 0 has the same meaning as ABS(MODE), except that
!> the order of the elements of D is reversed.
!> Thus if MODE is positive, D has entries ranging from
!> 1 to 1/COND, if negative, from 1/COND to 1,
!> Not modified.
!>
!> COND - DOUBLE PRECISION
!> On entry, used as described under MODE above.
!> If used, it must be >= 1. Not modified.
!>
!> IRSIGN - INTEGER
!> On entry, if MODE neither -6, 0 nor 6, determines sign of
!> entries of D
!> 0 => leave entries of D unchanged
!> 1 => multiply each entry of D by 1 or -1 with probability .5
!>
!> IDIST - CHARACTER*1
!> On entry, IDIST specifies the type of distribution to be
!> used to generate a random matrix .
!> 1 => UNIFORM( 0, 1 )
!> 2 => UNIFORM( -1, 1 )
!> 3 => NORMAL( 0, 1 )
!> Not modified.
!>
!> ISEED - INTEGER array, dimension ( 4 )
!> On entry ISEED specifies the seed of the random number
!> generator. 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 DLATM7
!> to continue the same random number sequence.
!> Changed on exit.
!>
!> D - DOUBLE PRECISION array, dimension ( MIN( M , N ) )
!> Array to be computed according to MODE, COND and IRSIGN.
!> May be changed on exit if MODE is nonzero.
!>
!> N - INTEGER
!> Number of entries of D. Not modified.
!>
!> RANK - INTEGER
!> The rank of matrix to be generated for modes 1,2,3 only.
!> D( RANK+1:N ) = 0.
!> Not modified.
!>
!> INFO - INTEGER
!> 0 => normal termination
!> -1 => if MODE not in range -6 to 6
!> -2 => if MODE neither -6, 0 nor 6, and
!> IRSIGN neither 0 nor 1
!> -3 => if MODE neither -6, 0 nor 6 and COND less than 1
!> -4 => if MODE equals 6 or -6 and IDIST not in range 1 to 3
!> -7 => if N negative
!>
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Definition at line 120 of file dlatm7.f.