# ?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 )

## 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

  COMPLEX*16 for zlarnv

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

iseed

  On exit, the seed is updated.

Parent topic: Auxiliary Routines