11#ifndef INCLUDED_GR_RANDOM_H
12#define INCLUDED_GR_RANDOM_H
40 static constexpr result_type min() {
return std::numeric_limits<result_type>::min(); }
44 static constexpr result_type max() {
return std::numeric_limits<result_type>::max(); }
74 std::uniform_real_distribution<float>
79 random(uint64_t seed = 0, int64_t min_integer = 0, int64_t max_integer = 2);
pseudo random number generator
Definition random.h:67
float rayleigh()
Rayleigh distributed random numbers (zero mean and variance 1 for the underlying Gaussian distributio...
float impulse(float factor)
Exponentially distributed random numbers with values less than or equal to factor replaced with zero....
float ran1()
Uniform random numbers in the range [0.0, 1.0)
void set_integer_limits(int64_t minimum, int64_t maximum)
gr_complex rayleigh_complex()
Normally distributed random numbers with zero mean and variance 1 on real and imaginary part....
float laplacian()
Laplacian distributed random numbers with zero mean and variance 1.
long d_seed
Definition random.h:69
std::uniform_real_distribution< float > d_uniform
Definition random.h:75
void reseed(uint64_t seed)
Change the seed for the initialized number generator. seed = 0 initializes the random number generato...
xoroshiro128p_prng d_rng
Definition random.h:73
float d_gauss_value
Definition random.h:71
bool d_gauss_stored
Definition random.h:70
random(uint64_t seed=0, int64_t min_integer=0, int64_t max_integer=2)
std::uniform_int_distribution< int64_t > d_integer_dis
Definition random.h:76
float gasdev()
Normally distributed random numbers (Gaussian distribution with zero mean and variance 1)
wrapper for XOROSHIRO128+ PRNG for use in std::distributions Fulfills C++ named requirements for Unif...
Definition random.h:29
void seed(uint64_t seed)
set new seed
Definition random.h:60
xoroshiro128p_prng(uint64_t init)
constructor. Expects a seed.
Definition random.h:49
static constexpr result_type min()
minimum value
Definition random.h:40
static constexpr result_type max()
maximum value
Definition random.h:44
uint64_t result_type
Definition random.h:31
result_type operator()()
yield a random value and advance state
Definition random.h:55
#define GR_RUNTIME_API
Definition gnuradio-runtime/include/gnuradio/api.h:18
std::complex< float > gr_complex
Definition gr_complex.h:15
GNU Radio logging wrapper.
Definition basic_block.h:29
static void xoroshiro128p_seed(uint64_t *state, const uint64_t seed)
Seed the 128 bit state from a 64 bit seed.
Definition xoroshiro128p.h:91
static uint64_t xoroshiro128p_next(uint64_t *state)
generate the next random number and update the state. This is the workhorse, here!
Definition xoroshiro128p.h:39