Developer Reference for Intel® oneAPI Math Kernel Library for Fortran

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

vslsNewAbstractStream

Creates and initializes an abstract random stream for single precision floating-point arrays.

Syntax

status = vslsnewabstractstream( stream, n, sbuf, a, b, scallback )

Include Files

  • mkl.fi, mkl_vsl.f90

Input Parameters

Name

Type

Description

n

INTEGER, INTENT(IN)

Size of the array sbuf

sbuf

REAL(KIND=4), INTENT(IN)

Array of n single precision floating-point random numbers with uniform distribution over interval (a,b)

a

REAL(KIND=4), INTENT(IN)

Left boundary a

b

REAL(KIND=4), INTENT(IN)

Right boundary b

scallback

See Note below

Address of the callback function used for update of the array sbuf

Output Parameters

Name

Type

Description

stream

TYPE(VSL_STREAM_STATE), INTENT(OUT)

Descriptor of the stream state structure

NOTE:

Format of the callback function in FORTRAN 77:

INTEGER FUNCTION SUPDATEFUNC( stream, n, ibuf, nmin, nmax, idx ) 
INTEGER*4 stream(2) 
INTEGER n 
REAL sbuf(n) 
INTEGER nmin 
INTEGER nmax 
INTEGER idx

Format of the callback function in Fortran 90:

INTEGER FUNCTION SUPDATEFUNC[C]( stream, n, sbuf, nmin, nmax, idx ) 
TYPE(VSL_STREAM_STATE),POINTER :: stream[reference] 
INTEGER(KIND=4),INTENT(IN)     :: n[reference] 
REAL(KIND=4),   INTENT(OUT)    :: sbuf[reference](0:n-1) 
INTEGER(KIND=4),INTENT(IN)     :: nmin[reference] 
INTEGER(KIND=4),INTENT(IN)     :: nmax[reference] 
INTEGER(KIND=4),INTENT(IN)     :: idx[reference]

The callback function returns the number of elements in the array actually updated by the function.Table scallback Callback Function Parameters gives the description of the callback function parameters.

scallback Callback Function Parameters

Parameters

Short Description

stream

Abstract random stream descriptor

n

Size of sbuf

sbuf

Array of random numbers associated with the stream stream

nmin

Minimal quantity of numbers to update

nmax

Maximal quantity of numbers that can be updated

idx

Position in cyclic buffer sbuf to start update 0idx<n.

Description

The vslsNewAbstractStream function creates a new abstract stream for single precision floating-point arrays with random numbers of the uniform distribution over interval (a,b). The function associates the stream with a single precision array sbuf and your callback function scallback that is intended for updating of sbuf content.

Return Values

VSL_ERROR_OK, VSL_STATUS_OK

Indicates no error, execution is successful.

VSL_ERROR_BADARGS

Parameter n is not positive.

VSL_ERROR_MEM_FAILURE

System cannot allocate memory for stream.

VSL_ERROR_NULL_PTR

Either buffer or callback function parameter is a NULL pointer.