Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 10/31/2024
Public
Document Table of Contents

?larnv

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

Syntax

lapack_int LAPACKE_slarnv (lapack_int idist , lapack_int * iseed , lapack_int n , float * x );

lapack_int LAPACKE_dlarnv (lapack_int idist , lapack_int * iseed , lapack_int n , double * x );

lapack_int LAPACKE_clarnv (lapack_int idist , lapack_int * iseed , lapack_int n , lapack_complex_float * x );

lapack_int LAPACKE_zlarnv (lapack_int idist , lapack_int * iseed , lapack_int n , lapack_complex_double * x );

Include Files

  • mkl.h

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

A <datatype> placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type definitions.

idist

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

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

The number of random numbers to be generated.

Output Parameters

x

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

iseed

On exit, the seed is updated.

Return Values

This function returns a value info.

If info = 0, the execution is successful.