FFmpeg
Loading...
Searching...
No Matches
Random Number Generation

Functions for generating uniformly distributed random numbers. More...

Functions

CHECKASM_API int checkasm_rand (void)
 Generate a random non-negative integer.
 
CHECKASM_API double checkasm_randf (void)
 Generate a random double-precision floating-point number.
 
CHECKASM_API uint8_t checkasm_rand_uint8 (void)
 Generate a random 8-bit unsigned integer.
 
CHECKASM_API uint16_t checkasm_rand_uint16 (void)
 Generate a random 16-bit unsigned integer.
 
CHECKASM_API uint32_t checkasm_rand_uint32 (void)
 Generate a random 32-bit unsigned integer.
 
CHECKASM_API uint64_t checkasm_rand_uint64 (void)
 Generate a random 64-bit unsigned integer.
 
CHECKASM_API int8_t checkasm_rand_int8 (void)
 Generate a random 8-bit signed integer.
 
CHECKASM_API int16_t checkasm_rand_int16 (void)
 Generate a random 16-bit signed integer.
 
CHECKASM_API int32_t checkasm_rand_int32 (void)
 Generate a random 32-bit signed integer.
 
CHECKASM_API int64_t checkasm_rand_int64 (void)
 Generate a random 64-bit signed integer.
 
CHECKASM_API float checkasm_rand_float32 (void)
 Generate a truly random 32-bit float.
 
CHECKASM_API double checkasm_rand_float64 (void)
 Generate a truly random 64-bit float.
 

Detailed Description

Functions for generating uniformly distributed random numbers.

These functions use the seed specified in CheckasmConfig (or a time-based seed if not specified) to generate deterministic, reproducible random values.

Note
The PRNG state is automatically re-seeded at the start of each test case (i.e. before each call to CheckasmTest.func), so that different CPU flags see the same sequence of random numbers, at least until control flow inside the test function diverges.

Function Documentation

◆ checkasm_rand()

CHECKASM_API int checkasm_rand ( void )

Generate a random non-negative integer.

Returns
Random value in range [0, INT_MAX]

Definition at line 248 of file utils.c.

Referenced by shift_rand().

◆ checkasm_randf()

CHECKASM_API double checkasm_randf ( void )

Generate a random double-precision floating-point number.

Returns
Random value in range [0.0, 1.0)

Definition at line 254 of file utils.c.

◆ checkasm_rand_uint8()

CHECKASM_API uint8_t checkasm_rand_uint8 ( void )

Generate a random 8-bit unsigned integer.

Returns
Random value in range [0, UINT8_MAX]

◆ checkasm_rand_uint16()

CHECKASM_API uint16_t checkasm_rand_uint16 ( void )

Generate a random 16-bit unsigned integer.

Returns
Random value in range [0, UINT16_MAX]

◆ checkasm_rand_uint32()

CHECKASM_API uint32_t checkasm_rand_uint32 ( void )

Generate a random 32-bit unsigned integer.

Returns
Random value in range [0, UINT32_MAX]

Referenced by checkasm_rand(), checkasm_randf(), checkasm_randomize_interval(), checkasm_randomize_intervalf(), checkasm_randomize_range(), checkasm_randomize_rangef(), and marsaglia().

◆ checkasm_rand_uint64()

CHECKASM_API uint64_t checkasm_rand_uint64 ( void )

Generate a random 64-bit unsigned integer.

Returns
Random value in range [0, UINT64_MAX]

◆ checkasm_rand_int8()

CHECKASM_API int8_t checkasm_rand_int8 ( void )

Generate a random 8-bit signed integer.

Returns
Random value in range [INT8_MIN, INT8_MAX]

◆ checkasm_rand_int16()

CHECKASM_API int16_t checkasm_rand_int16 ( void )

Generate a random 16-bit signed integer.

Returns
Random value in range [INT16_MIN, INT16_MAX]

◆ checkasm_rand_int32()

CHECKASM_API int32_t checkasm_rand_int32 ( void )

Generate a random 32-bit signed integer.

Returns
Random value in range [INT32_MIN, INT32_MAX]

◆ checkasm_rand_int64()

CHECKASM_API int64_t checkasm_rand_int64 ( void )

Generate a random 64-bit signed integer.

Returns
Random value in range [INT64_MIN, INT64_MAX]

◆ checkasm_rand_float32()

CHECKASM_API float checkasm_rand_float32 ( void )

Generate a truly random 32-bit float.

Returns
Random float value, drawn from the space of all possible float representations, including every possible NaN, Infinity etc.
See also
checkasm_randf(), checkasm_rand_norm(), checkasm_rand_dist()

◆ checkasm_rand_float64()

CHECKASM_API double checkasm_rand_float64 ( void )

Generate a truly random 64-bit float.

Returns
Random float value, drawn from the space of all possible float representations, including every possible NaN, Infinity etc.
See also
checkasm_randf(), checkasm_rand_norm(), checkasm_rand_dist()