Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
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 |
Address of the callback function used for ibuf update |
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]
Format of the callback function: int iUpdateFunc( VSLStreamStatePtr stream , int* n , unsigned int ibuf [], int* nmin , int* nmax , int* idx );
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
vsliNewAbstractStream 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.