# svrng_generate[1|2|4|8|16|32]_[int|float|double]

Generates distributed random values for the specified engine and distribution

## Syntax

int32_t svrng_generate_int( svrng_engine_t engine, svrng_distribution_t distr )

svrng_int1_t svrng_generate1_int( svrng_engine_t engine, svrng_distribution_t distr )

svrng_int2_t svrng_generate2_int( svrng_engine_t engine, svrng_distribution_t distr )

svrng_int4_t svrng_generate4_int( svrng_engine_t engine, svrng_distribution_t distr )

svrng_int8_t svrng_generate8_int( svrng_engine_t engine, svrng_distribution_t distr )

svrng_int16_t svrng_generate16_int( svrng_engine_t engine, svrng_distribution_t distr )

svrng_int32_t svrng_generate32_int( svrng_engine_t engine, svrng_distribution_t distr )

float svrng_generate_float( svrng_engine_t engine, svrng_distribution_t distr )

svrng_float1_t svrng_generate1_float( svrng_engine_t engine, svrng_distribution_t distr )

svrng_float2_t svrng_generate2_float( svrng_engine_t engine, svrng_distribution_t distr )

svrng_float4_t svrng_generate4_float( svrng_engine_t engine, svrng_distribution_t distr )

svrng_float8_t svrng_generate8_float( svrng_engine_t engine, svrng_distribution_t distr )

svrng_float16_t svrng_generate16_float( svrng_engine_t engine, svrng_distribution_t distr )

svrng_float32_t svrng_generate32_float( svrng_engine_t engine, svrng_distribution_t distr )

double svrng_generate_double( svrng_engine_t engine, svrng_distribution_t distr )

svrng_double1_t svrng_generate1_double( svrng_engine_t engine, svrng_distribution_t distr )

svrng_double2_t svrng_generate2_double( svrng_engine_t engine, svrng_distribution_t distr )

svrng_double4_t svrng_generate4_double( svrng_engine_t engine, svrng_distribution_t distr )

svrng_double8_t svrng_generate8_double( svrng_engine_t engine, svrng_distribution_t distr )

svrng_double16_t svrng_generate16_double( svrng_engine_t engine, svrng_distribution_t distr )

svrng_double32_t svrng_generate32_double( svrng_engine_t engine, svrng_distribution_t distr )

## Input Parameters

engine | Pointer to the engine.
distr | Pointer to the distribution.

## Description

The svrng_generate[n]_[int|float|double] functions generate distributed random values based on the input engine and distribution specified. The output types that are supported—int, float, or double—depend on the distribution used. The number n if specified expresses the number of packed elements desired in the returned SIMD registers.

## Status flags set

Name | Description
--- | ---
SVRNG_STATUS_ERROR_UNSUPPORTED | Unmatched engine and result type. See the Description section for supported combinations.
SVRNG_STATUS_ERROR_BAD_ENGINE | Bad engine (NULL pointer)
SVRNG_STATUS_ERROR_BAD_DISTR | Bad distribution (NULL pointer)

## Return Values

The svrng_generate_[int|long|double] functions return a single random value of the specified type. The svrng_generate[n]_[int|long|double] functions, for n=1, 2, 4, 8, 16, or 32, return as many signed random values packed in a SIMD register.

Parent topic: Random Values Generation