Developer Guide and Reference

Contents

svrng_new_rand0_engine/svrng_new_rand0_ex

Routines for allocating memory for a rand0 engine and initializing with one or multiple seeds

Syntax

svrng_engine_t svrng_new_rand0_engine( uint32_t
seed
)
svrng_engine_t svrng_new_rand0_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_rand0_engine
function allocates memory for the rand0 engine originated from C++11 standard and initializes it using one
seed
value. The extended version of the function,
svrng_new_rand0_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 rand0 engine is a simple 32-bit multiplicative congruential pseudo-random number generator represented by formula:
x
i+1
= (a*x
i
) mod m
multiplier
a = 16807 (=7
5
)
modulus
m = 2147483647 (=2
31
-1)
Range: [0,MAX), where MAX = m

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804