50 typedef std::function<double(
double, std::shared_ptr<void>, std::vector<double>)>
distribution_func;
135 void set_range (
const double MinVal,
const double MaxVal);
142 { (void)value;
ErrorCBL(
"error!",
"set_value",
"RandomNumbers.h"); }
149 { (void)mean;
ErrorCBL(
"error!",
"set_mean",
"RandomNumbers.h"); }
157 { (void)mean; (void)sigma;
ErrorCBL(
"error!",
"set_mean_sigma",
"RandomNumbers.h"); }
165 { (void)values; (void)weights;
ErrorCBL(
"error!",
"set_discrete_values",
"RandomNumbers.h"); }
173 { (void)values; (void)weights;
ErrorCBL(
"error!",
"set_interpolated_distribution",
"RandomNumbers.h"); }
187 { (void)func; (void)modelInput; (void)parameter;
ErrorCBL(
"error!",
"set_custom_distribution",
"RandomNumbers.h"); }
491 void set_discrete_values (
const std::vector<double> values,
const std::vector<double> weights);
533 DistributionRandomNumbers (
const std::vector<double> xx,
const std::vector<double> distribution_function,
const std::string interpolation_method,
const int seed);
556 void set_interpolated_distribution (
const std::vector<double> xx,
const std::vector<double> distribution_function,
const std::string interpolation_method);
Wrapper for fftlog wripper.
The class ConstantRandomNumbers.
~ConstantRandomNumbers()=default
default destructor
double m_value
returned value
double operator()()
extract number from the distribution
ConstantRandomNumbers(const double value)
constructor
void set_value(const double value)
set the value for constant distribution
The class CustomDistributionRandomNumbers.
double m_normalization
the distribution normalization
std::shared_ptr< void > m_func_modelInput
pointer to the data possibly used to construct the probability the distribution function
std::vector< double > m_func_parameter
parameters of the probability distribution function
void set_seed(const int seed)
set the random number generator seed
CustomDistributionRandomNumbers(const distribution_func func, const std::shared_ptr< void > modelInput, const std::vector< double > parameter, const int seed, const double MinVal=par::defaultDouble, const double MaxVal=-par::defaultDouble)
constructor
double operator()()
extract number from the distribution
std::shared_ptr< UniformRandomNumbers > m_uniform_generator
Uniform random number generator.
distribution_func m_func
the probability distribution function
~CustomDistributionRandomNumbers()=default
default destructor
void set_custom_distribution(const distribution_func func, const std::shared_ptr< void > modelInput, const std::vector< double > parameter)
set parameters for interpolated distribution
The class DiscreteRandomNumbers.
std::shared_ptr< std::discrete_distribution< int > > m_distribution
discrete distribution
DiscreteRandomNumbers(const std::vector< double > values, const std::vector< double > weights, const int seed, const double MinVal=par::defaultDouble, const double MaxVal=-par::defaultDouble)
constructor
void set_discrete_values(const std::vector< double > values, const std::vector< double > weights)
set parameters for Discrete distribution
~DiscreteRandomNumbers()=default
default destructor
std::vector< double > m_values
discrete values
std::vector< double > m_weights
weights for the values
double operator()()
extract number from the distribution
The class DistributionRandomNumbers.
std::shared_ptr< glob::FuncGrid > m_distribution
interpolated distribution
~DistributionRandomNumbers()=default
default destructor
DistributionRandomNumbers(const std::vector< double > xx, const std::vector< double > distribution_function, const std::string interpolation_method, const int seed)
constructor
std::shared_ptr< UniformRandomNumbers > m_uniform_generator
Uniform random number generator.
void set_seed(const int seed)
set the random number generator seed
double operator()()
extract number from the distribution
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
The class NormalRandomNumbers.
std::shared_ptr< std::normal_distribution< double > > m_distribution
normal distributionnormal distributionnormal distributionnormal distribution
double operator()()
extract number from the distribution
void set_mean_sigma(const double mean, const double sigma)
set parameters for Normal distribution
~NormalRandomNumbers()=default
default destructor
NormalRandomNumbers(const double mean, const double sigma, const int seed, const double MinVal=par::defaultDouble, const double MaxVal=-par::defaultDouble)
constructor
double m_sigma
standard deviation
The class PoissonRandomNumbers.
void set_mean(const double mean)
set the mean for Poisson distribution
PoissonRandomNumbers(const double mean, const int seed, const double MinVal=par::defaultDouble, const double MaxVal=-par::defaultDouble)
constructor
std::shared_ptr< std::poisson_distribution< int > > m_distribution
Poisson distribution.
double operator()()
extract number from the distribution
~PoissonRandomNumbers()=default
default destructor
void set_seed(const int seed)
set the random number generator seed
double m_MinVal
minimum value to generate
virtual void set_interpolated_distribution(const std::vector< double > values, const std::vector< double > weights)
set the parameters for the interpolated distribution
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
virtual ~RandomNumbers()=default
default destructor
RandomNumbers()=default
default constructor
void set_value(const double value)
set the value for constant distribution
std::mt19937_64 m_generator
pseudo-random numbers generator
double m_MaxVal
maximum value to generate
virtual double operator()()=0
extract number from the distribution
void set_range(const double MinVal, const double MaxVal)
set the range for the random number extraction
virtual void set_mean_sigma(const double mean, const double sigma)
set parameters for Normal distribution
virtual void set_mean(const double mean)
set the mean for Poisson distribution
virtual void set_discrete_values(const std::vector< double > values, const std::vector< double > weights)
set parameters for Discrete distribution
static const double defaultDouble
default double value
The global namespace of the CosmoBolognaLib
int ErrorCBL(const std::string msg, const std::string functionCBL, const std::string fileCBL, const cbl::glob::ExitCode exitCode=cbl::glob::ExitCode::_error_)
throw an exception: it is used for handling exceptions inside the CosmoBolognaLib
std::function< double(std::vector< double >, std::shared_ptr< void >)> nDim_distribution_func
distribution function used for a n-dimensional distribution
std::function< double(double, std::shared_ptr< void >, std::vector< double >)> distribution_func
generic distribution function