Notes for Intel® oneAPI Math Kernel Library Vector Statistics

ID 772987
Date 12/04/2020
Public
Document Table of Contents

UniformBits32 (VSL_RNG_METHOD_UNIFORMBITS32_STD)

A random number generator that produces uniformly distributed bits in 32-bit chunks.

Some basic random number generators produce integers in which not all of the bits are uniformly distributed, for example:

  1. The least significant bits in the integers produced by MCG59 BRNG are less random. For example, the lower four bits form a congruential sequence with the period of, at most, 16; and the least significant bit is either constant or strictly alternating. For example, see [Knuth81].

  2. By design, BRNGs do not produce the most significant bits setting them to zero. For example, MCG31m1 is a 31-bit generator, and MCG59 is a 59-bit generator.

The UniformBits32 function transforms the underlying BRNG integer recurrence so that all bits in 32-bit chunks are uniformly distributed.

This function does not support the following VS BRNGs:

  1. VSL_BRNG_MCG31

  2. VSL_BRNG_R250

  3. VSL_BRNG_MRG32K3A

  4. VSL_BRNG_WH

  5. VSL_BRNG_SOBOL

  6. VSL_BRNG_NIEDERR

  7. VSL_BRNG_IABSTRACT

  8. VSL_BRNG_DABSTRACT

  9. VSL_BRNG_SABSTRACT