CosmoBolognaLib
Free Software C++/Python libraries for cosmological calculations
cbl::random::RandomNumbers Class Referenceabstract

The class RandomNumbers. More...

#include <RandomNumbers.h>

Inheritance diagram for cbl::random::RandomNumbers:

Public Member Functions

 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
 
virtual double operator() ()=0
 extract number from the distribution More...
 
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::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 RandomNumbers.

"Headers/RandomNumbers.h"

The base class to generate random numbers

Definition at line 77 of file RandomNumbers.h.

Constructor & Destructor Documentation

◆ RandomNumbers()

cbl::random::RandomNumbers::RandomNumbers ( const int  seed,
const double  MinVal = par::defaultDouble,
const double  MaxVal = -par::defaultDouble 
)

constructor

Parameters
seedthe random number generator seed
MinVallower limit of the random numbers range
MaxValupper limit of the random numbers range

Definition at line 45 of file RandomNumbers.cpp.

Member Function Documentation

◆ operator()()

◆ set_custom_distribution()

virtual void cbl::random::RandomNumbers::set_custom_distribution ( const distribution_func  func,
const std::shared_ptr< void >  modelInput,
const std::vector< double >  parameter 
)
inlinevirtual

set parameters for interpolated distribution

Parameters
functhe probability distribution function
modelInputpointer to the data possibly used to construct the probability distribution function
parameterthe parameters of the probability distribution function

Reimplemented in cbl::random::CustomDistributionRandomNumbers.

Definition at line 186 of file RandomNumbers.h.

◆ set_discrete_values()

virtual void cbl::random::RandomNumbers::set_discrete_values ( const std::vector< double >  values,
const std::vector< double >  weights 
)
inlinevirtual

set parameters for Discrete distribution

Parameters
valuesthe values to be extracted
weightsthe values weights

Reimplemented in cbl::random::DiscreteRandomNumbers.

Definition at line 164 of file RandomNumbers.h.

◆ set_interpolated_distribution()

virtual void cbl::random::RandomNumbers::set_interpolated_distribution ( const std::vector< double >  values,
const std::vector< double >  weights 
)
inlinevirtual

set the parameters for the interpolated distribution

Parameters
valuesthe values to be extracted
weightsthe values weights

Definition at line 172 of file RandomNumbers.h.

◆ set_mean()

virtual void cbl::random::RandomNumbers::set_mean ( const double  mean)
inlinevirtual

set the mean for Poisson distribution

Parameters
meanthe Poisson distribution mean

Reimplemented in cbl::random::PoissonRandomNumbers.

Definition at line 148 of file RandomNumbers.h.

◆ set_mean_sigma()

virtual void cbl::random::RandomNumbers::set_mean_sigma ( const double  mean,
const double  sigma 
)
inlinevirtual

set parameters for Normal distribution

Parameters
meanthe Normal distribution mean
sigmathe Normal distribution standard deviation

Reimplemented in cbl::random::NormalRandomNumbers.

Definition at line 156 of file RandomNumbers.h.

◆ set_range()

void cbl::random::RandomNumbers::set_range ( const double  MinVal,
const double  MaxVal 
)

set the range for the random number extraction

Parameters
MinVallower limit of the random numbers range
MaxValupper limit of the random numbers range

Definition at line 65 of file RandomNumbers.cpp.

◆ set_seed()

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

set the random number generator seed

Parameters
seedthe random number generator seed

Definition at line 55 of file RandomNumbers.cpp.

◆ set_value()

void cbl::random::RandomNumbers::set_value ( const double  value)
inline

set the value for constant distribution

Parameters
valuethe value to be returned

Definition at line 141 of file RandomNumbers.h.


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