Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

ID 766686
Date 3/22/2024
Public
Document Table of Contents

?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

  • mkl.fi

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

The data types are given for the Fortran interface.

idist

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

= 1: uniform (0,1)

= 2: uniform (-1,1)

= 3: normal (0,1).

for clarnv and zlarnv:

= 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, size (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, size (n). The generated random numbers.

iseed

On exit, the seed is updated.