Developer Reference for Intel® oneAPI Math Kernel Library for C
vsliNewAbstractStream
Creates and initializes an abstract random stream for integer arrays.
Syntax
status = vsliNewAbstractStream ( &stream , n , ibuf , icallback );
Include Files
mkl.h
Input Parameters
Name |
Type |
Description |
|---|---|---|
n |
const MKL_INT |
Size of the array ibuf |
ibuf |
const unsigned int |
Array of n 32-bit integers |
icallback |
Pointer to 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 |
VSLStreamStatePtr* |
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.