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

Syntax

svrng_engine_t svrng_new_rand_engine( uint32_t seed )

svrng_engine_t svrng_new_rand_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_rand_engine function allocates memory for the rand engine (originated from C++ 11 standard) and initializes it using one seed value. The extended version of the function, svrng_new_rand_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 rand is a simple 32-bit multiplicative congruential pseudo-random number generator represented by formula:

xi+1 = (a*xi) mod m

multiplier a = 48271

modulus m = 2147483647 (=231-1)

Range: [0,MAX), where MAX = m

Para obter informações mais completas sobre otimizações do compilador, consulte nosso aviso de otimização.