Visible to Intel only — GUID: GUID-935AFC24-CBAC-4956-A866-12D6C589570D
Visible to Intel only — GUID: GUID-935AFC24-CBAC-4956-A866-12D6C589570D
svrng_new_mcg31m1_engine/svrng_new_mcg31m1_ex
Routines for allocating memory for a mcg31m1 engine and initializing with one or multiple seeds
Syntax
svrng_engine_t svrng_new_mcg31m1_engine( uint32_t seed )
svrng_engine_t svrng_new_mcg31m1_engine_ex( int num, uint32_t *pseed )
Input Parameters
seed |
Initial condition for the engine. |
num |
Number of initialization values for the extended routine. May be 0 ( seed set to 1 ), 1 ( seed set to pseed[0] ), or SIMD_WIDTH. |
pseed |
Pointer to an array with initialization values for the extended routine. |
Description
The svrng_new_mcg31m1_engine function allocates memory for the mcg31m1 engine (originated from C++ 11 standard) and initializes it using one seed value. The extended version of the function, svrng_new_mcg31m1_engine_ex, accepts several values for complex initialization cases where the user needs to fill the whole vector state with their own constants.
Status flags set
Name |
Description |
---|---|
SVRNG_STATUS_ERROR_MEMORY_ALLOC |
Memory allocation failure |
SVRNG_STATUS_ERROR_BAD_PARAM1 |
Bad parameter: num |
SVRNG_STATUS_ERROR_BAD_PARAM2 |
Bad parameter: pseed |
Return Values
A pointer to an initialized engine or NULL on error.
Application Notes
The mcg31m1 is a simple 32-bit multiplicative congruential pseudo-random number generator represented by formula:
xi+1 = (a*xi) mod m
multiplier a = 1132489760
modulus m = 2147483647 (=231-1) Range: [0,MAX), where MAX = m