GNU Radio Manual and C++ API Reference  3.10.9.1
The Free & Open Software Radio Ecosystem
gr::random Class Reference

pseudo random number generator More...

#include <gnuradio/random.h>

Public Member Functions

 random (uint64_t seed=0, int64_t min_integer=0, int64_t max_integer=2)
 
 ~random ()
 
void reseed (uint64_t seed)
 Change the seed for the initialized number generator. seed = 0 initializes the random number generator with the system time. More...
 
void set_integer_limits (int64_t minimum, int64_t maximum)
 
int64_t ran_int ()
 
float ran1 ()
 Uniform random numbers in the range [0.0, 1.0) More...
 
float gasdev ()
 Normally distributed random numbers (Gaussian distribution with zero mean and variance 1) More...
 
float laplacian ()
 Laplacian distributed random numbers with zero mean and variance 1. More...
 
float rayleigh ()
 Rayleigh distributed random numbers (zero mean and variance 1 for the underlying Gaussian distributions) More...
 
float impulse (float factor)
 Exponentially distributed random numbers with values less than or equal to factor replaced with zero. The underlying exponential distribution has mean sqrt(2) and variance 2. More...
 
gr_complex rayleigh_complex ()
 Normally distributed random numbers with zero mean and variance 1 on real and imaginary part. This results in a Rayleigh distribution for the amplitude and an uniform distribution for the phase. More...
 

Protected Attributes

long d_seed
 
bool d_gauss_stored
 
float d_gauss_value
 
xoroshiro128p_prng d_rng
 
std::uniform_real_distribution< float > d_uniform
 
std::uniform_int_distribution< int64_t > d_integer_dis
 

Detailed Description

pseudo random number generator

Constructor & Destructor Documentation

◆ random()

gr::random::random ( uint64_t  seed = 0,
int64_t  min_integer = 0,
int64_t  max_integer = 2 
)

◆ ~random()

gr::random::~random ( )

Member Function Documentation

◆ gasdev()

float gr::random::gasdev ( )

Normally distributed random numbers (Gaussian distribution with zero mean and variance 1)

◆ impulse()

float gr::random::impulse ( float  factor)

Exponentially distributed random numbers with values less than or equal to factor replaced with zero. The underlying exponential distribution has mean sqrt(2) and variance 2.

◆ laplacian()

float gr::random::laplacian ( )

Laplacian distributed random numbers with zero mean and variance 1.

◆ ran1()

float gr::random::ran1 ( )

Uniform random numbers in the range [0.0, 1.0)

◆ ran_int()

int64_t gr::random::ran_int ( )

Uniform random integers in the range set by 'set_integer_limits' [min, max).

◆ rayleigh()

float gr::random::rayleigh ( )

Rayleigh distributed random numbers (zero mean and variance 1 for the underlying Gaussian distributions)

◆ rayleigh_complex()

gr_complex gr::random::rayleigh_complex ( )

Normally distributed random numbers with zero mean and variance 1 on real and imaginary part. This results in a Rayleigh distribution for the amplitude and an uniform distribution for the phase.

◆ reseed()

void gr::random::reseed ( uint64_t  seed)

Change the seed for the initialized number generator. seed = 0 initializes the random number generator with the system time.

◆ set_integer_limits()

void gr::random::set_integer_limits ( int64_t  minimum,
int64_t  maximum 
)

set minimum and maximum for integer random number generator. Limits are [minimum, maximum) Default: [0, std::numeric_limits< IntType >::max)]

Member Data Documentation

◆ d_gauss_stored

bool gr::random::d_gauss_stored
protected

◆ d_gauss_value

float gr::random::d_gauss_value
protected

◆ d_integer_dis

std::uniform_int_distribution<int64_t> gr::random::d_integer_dis
protected

◆ d_rng

xoroshiro128p_prng gr::random::d_rng
protected

◆ d_seed

long gr::random::d_seed
protected

◆ d_uniform

std::uniform_real_distribution<float> gr::random::d_uniform
protected

The documentation for this class was generated from the following file: