# Random Values Generation

Once the engines and distributions are created by the appropriate initialization routines, the SVRNG generation functions may be called. Both scalar and vector implementations are available. Scalar functions return random values of native "C" types such as `int32_t`, `uint32_t`, `uint64_t`, `float`, and `double`, while vector functions produce packed results in SIMD registers through CPU-specific types (see the "Data Types and Calling Conventions" sections). Calls to scalar SVRNG intrinsics in loops can be vectorized by the compiler via the "vector_variant" feature when the svrng.h header file is used. The compiler vectorizer replaces scalar calls by a corresponding SIMD version.

Parent topic: Intrinsics for the Short Vector Random Number Generator Library

- svrng_generate[1|2|4|8|16|32]_[uint|ulong]
  Generates uniform random bits over the a specified range
- svrng_generate[1|2|4|8|16|32]_[int|float|double]
  Generates distributed random values for the specified engine and distribution

## See Also

Data Types and Calling Conventions