?larnv

Returns a vector of random numbers from a uniform or normal distribution.

Syntax

call slarnv( idist, iseed, n, x )

call dlarnv( idist, iseed, n, x )

call clarnv( idist, iseed, n, x )

call zlarnv( idist, iseed, n, x )

Include Files

Description

The routine ?larnv returns a vector of n random real/complex numbers from a uniform or normal distribution.

This routine calls the auxiliary routine ?laruv to generate random real numbers from a uniform (0,1) distribution, in batches of up to 128 using vectorisable code. The Box-Muller method is used to transform numbers from a uniform to a normal distribution.

Input Parameters

idist

INTEGER. Specifies the distribution of the random numbers: for slarnv and dlanrv:

= 1: uniform (0,1)

= 2: uniform (-1,1)

= 3: normal (0,1).

for clarnv and zlanrv:

= 1: real and imaginary parts each uniform (0,1)

= 2: real and imaginary parts each uniform (-1,1)

= 3: real and imaginary parts each normal (0,1)

= 4: uniformly distributed on the disc abs(z) < 1

= 5: uniformly distributed on the circle abs(z) = 1

iseed

INTEGER. Array, DIMENSION (4).

On entry, the seed of the random number generator; the array elements must be between 0 and 4095, and iseed(4) must be odd.

n

INTEGER. The number of random numbers to be generated.

Output Parameters

x

REAL for slarnv

DOUBLE PRECISION for dlarnv

COMPLEX for clarnv

DOUBLE COMPLEX for zlarnv

Array, DIMENSION (n). The generated random numbers.

iseed

On exit, the seed is updated.


Submit feedback on this help topic