Visible to Intel only — GUID: sxx1522247697341
Ixiasoft
Visible to Intel only — GUID: sxx1522247697341
Ixiasoft
A.1. Random Number Generator Library
The Random Number Generator Library and Cryptography
The use of these pseudo-random number generator (PRNG) algorithms are not recommended for cryptographic purposes. The PRNGs included in this library are not cryptographically-secure pseudo-random number generators (CSPRNGs) and should not be used for cryptography. CSPRNG algorithms are designed so that no polynomial-time algorithm (PTA) can compute or predict the next bit in the pseudo-random sequence, nor is there a PTA that can predict past values of the CSPRNG; these algorithms do not achieve this purpose. Additionally, these algorithms have not been reviewed nor are they recommended for use as a PRNG component of a CSPRNG, even if the input values are from a non-deterministic entropy source with an appropriate entropy extractor.
Value distribution | Value type | Value range | Generation method |
---|---|---|---|
Uniform | Integer | [-2³¹, 2³¹-1] | Tausworthe Generator |
Floating point | [0, 1) (non-inclusive) | Tausworthe Generator | |
Gaussian | Floating point | [0, 1) | Central limit theorem (CLT) (Default) |
Box-Muller |
Header File
#include "HLS/rand_lib.h"
The header file is self-documented. You can review the header file to learn how to use the random number generator library in your component.
Random Number Object Declarations
- Uniform distribution integer random number
static RNG_Uniform<int> <object_name>(<seed_value>)
- Uniform distribution floating point random number
static RNG_Uniform<float> <object_name>(<seed_value>)
- Gaussian distribution floating point random number (CLT method)
orstatic RNG_Gaussian<float> <object_name>(<seed_value>)
static RNG_Gaussian<float, ihc::GAUSSIAN_CLT> <object_name>(<seed_value>)
- Gaussian distribution floating point random number (Box-Muller method)
static RNG_Gaussian<float, ihc::GAUSSIAN_BOX_MULLER> <object_name>(<seed_value>)