Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

vsliNewAbstractStream

Creates and initializes an abstract random stream for integer arrays.

Syntax

status
=
vslinewabstractstream
(
stream
,
n
,
ibuf
,
icallback
)
Include Files
  • mkl.fi
    ,
    mkl_vsl.f90
Input Parameters
Name
Type
Description
n
INTEGER
,
INTENT(IN)
Size of the array
ibuf
ibuf
INTEGER
(KIND=4)
,
INTENT(IN)
Array of
n
32-bit integers
icallback
See
Note
below
Address of the callback function used for
ibuf
update
Format of the callback function in FORTRAN 77:
INTEGER FUNCTION IUPDATEFUNC( stream, n, ibuf, nmin, nmax, idx )
INTEGER*4 stream(2)
INTEGER n
INTEGER*4 ibuf(n)
INTEGER nmin
INTEGER nmax
INTEGER idx
Format of the callback function in Fortran 90:
INTEGER FUNCTION IUPDATEFUNC[C]( stream, n, ibuf, nmin, nmax, idx )
TYPE(VSL_STREAM_STATE),POINTER :: stream[reference]
INTEGER(KIND=4),INTENT(IN) :: n[reference]
INTEGER(KIND=4),INTENT(OUT) :: ibuf[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
icallback
Callback Function Parameters
gives the description of the callback function parameters.
icallback
Callback Function Parameters
Parameters
Short Description
stream
Abstract random stream descriptor
n
Size of
ibuf
ibuf
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
ibuf
to start update
0
idx
<
n
.
Output Parameters
Name
Type
Description
stream
TYPE(VSL_STREAM_STATE)
,
TINTENT(OUT)
Descriptor of the stream state structure
Description
The
vsliNewAbstractStream
function creates a new abstract stream and associates it with an integer array
ibuf
and your callback function
icallback
that is intended for updating of
ibuf
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.