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

The class DiscreteRandomNumbers. More...

#include <RandomNumbers.h>

Inheritance diagram for cbl::random::DiscreteRandomNumbers:
Collaboration diagram for cbl::random::DiscreteRandomNumbers:

Public Member Functions

 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 More...
 
 ~DiscreteRandomNumbers ()=default
 default destructor
 
void set_discrete_values (const std::vector< double > values, const std::vector< double > weights)
 set parameters for Discrete 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_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::vector< double > m_values
 discrete values
 
std::vector< double > m_weights
 weights for the values
 
std::shared_ptr< std::discrete_distribution< int > > m_distribution
 discrete 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 DiscreteRandomNumbers.

"Headers/RandomNumbers.h"

The base class to generate random numbers from a discrete sample

Definition at line 451 of file RandomNumbers.h.

Constructor & Destructor Documentation

◆ DiscreteRandomNumbers()

cbl::random::DiscreteRandomNumbers::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

Parameters
valuesvalues of the discrete distribution
weightsweights of the discrete distribution
seedthe random number generator seed
MinVallower limit of the random numbers range
MaxValupper limit of the random numbers range

Definition at line 179 of file RandomNumbers.cpp.

Member Function Documentation

◆ operator()()

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

extract number from the distribution

Returns
random values

Implements cbl::random::RandomNumbers.

Definition at line 213 of file RandomNumbers.cpp.

◆ set_discrete_values()

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

set parameters for Discrete distribution

Parameters
valuesthe values to be extracted
weightsthe values weights

Reimplemented from cbl::random::RandomNumbers.

Definition at line 188 of file RandomNumbers.cpp.


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