CosmoBolognaLib
Free Software C++/Python libraries for cosmological calculations
cbl::random::DistributionRandomNumbers Class Reference

The class DistributionRandomNumbers. More...

#include <RandomNumbers.h>

Inheritance diagram for cbl::random::DistributionRandomNumbers:
Collaboration diagram for cbl::random::DistributionRandomNumbers:

Public Member Functions

 DistributionRandomNumbers (const std::vector< double > xx, const std::vector< double > distribution_function, const std::string interpolation_method, const int seed)
 constructor More...
 
 ~DistributionRandomNumbers ()=default
 default destructor
 
void set_seed (const int seed)
 set the random number generator seed More...
 
void set_interpolated_distribution (const std::vector< double > xx, const std::vector< double > distribution_function, const std::string interpolation_method)
 set parameters for interpolated distribution More...
 
double operator() ()
 extract number from the distribution More...
 
- Public Member Functions inherited from cbl::random::RandomNumbers
 RandomNumbers ()=default
 default constructor
 
 RandomNumbers (const int seed, const double MinVal=par::defaultDouble, const double MaxVal=-par::defaultDouble)
 constructor More...
 
virtual ~RandomNumbers ()=default
 default destructor
 
void set_seed (const int seed)
 set the random number generator seed More...
 
void set_range (const double MinVal, const double MaxVal)
 set the range for the random number extraction More...
 
void set_value (const double value)
 set the value for constant distribution More...
 
virtual void set_mean (const double mean)
 set the mean for Poisson distribution More...
 
virtual void set_mean_sigma (const double mean, const double sigma)
 set parameters for Normal distribution More...
 
virtual void set_discrete_values (const std::vector< double > values, const std::vector< double > weights)
 set parameters for Discrete distribution More...
 
virtual void set_interpolated_distribution (const std::vector< double > values, const std::vector< double > weights)
 set the parameters for the interpolated distribution More...
 
virtual void set_custom_distribution (const distribution_func func, const std::shared_ptr< void > modelInput, const std::vector< double > parameter)
 set parameters for interpolated distribution More...
 

Protected Attributes

std::shared_ptr< UniformRandomNumbersm_uniform_generator
 Uniform random number generator.
 
std::shared_ptr< glob::FuncGridm_distribution
 interpolated distribution
 
- Protected Attributes inherited from cbl::random::RandomNumbers
std::mt19937_64 m_generator
 pseudo-random numbers generator
 
int m_seed
 seed
 
double m_MinVal
 minimum value to generate
 
double m_MaxVal
 maximum value to generate
 

Detailed Description

The class DistributionRandomNumbers.

"Headers/RandomNumbers.h"

The base class to generate random numbers from a tabulated density distribution

Definition at line 512 of file RandomNumbers.h.

Constructor & Destructor Documentation

◆ DistributionRandomNumbers()

cbl::random::DistributionRandomNumbers::DistributionRandomNumbers ( const std::vector< double >  xx,
const std::vector< double >  distribution_function,
const std::string  interpolation_method,
const int  seed 
)

constructor

Parameters
xxvalues of the distribution
distribution_functiondensity probability function at xx
interpolation_methodthe method to interpolate
seedthe random number generator seed

Definition at line 222 of file RandomNumbers.cpp.

Member Function Documentation

◆ operator()()

double cbl::random::DistributionRandomNumbers::operator() ( )
virtual

extract number from the distribution

Returns
random values

Implements cbl::random::RandomNumbers.

Definition at line 271 of file RandomNumbers.cpp.

◆ set_interpolated_distribution()

void cbl::random::DistributionRandomNumbers::set_interpolated_distribution ( const std::vector< double >  xx,
const std::vector< double >  distribution_function,
const std::string  interpolation_method 
)

set parameters for interpolated distribution

Parameters
xxvector containing the values with known distribution function
distribution_functionvector containing the distribution function at xx
interpolation_methodthe method of interpolation

Definition at line 241 of file RandomNumbers.cpp.

◆ set_seed()

void cbl::random::DistributionRandomNumbers::set_seed ( const int  seed)

set the random number generator seed

Parameters
seedthe random number generator seed

Definition at line 232 of file RandomNumbers.cpp.


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