15 #ifndef BORNAGAIN_CORE_PARAMETRIZATION_RANGEDDISTRIBUTIONS_H 
   16 #define BORNAGAIN_CORE_PARAMETRIZATION_RANGEDDISTRIBUTIONS_H 
   51     std::vector<ParameterSample> generateSamples(
double mean, 
double stddev) 
const;
 
   54     std::vector<std::vector<ParameterSample>>
 
   55     generateSamples(
const std::vector<double>& mean, 
const std::vector<double>& stddev) 
const;
 
   58     std::unique_ptr<IDistribution1D> 
distribution(
double mean, 
double stddev) 
const;
 
   67     size_t nSamples()
 const { 
return m_n_samples; }
 
   78     virtual std::string 
name() 
const = 0;
 
   81                                                                double stddev) 
const = 0;
 
   84     void checkInitialization();
 
   87     double m_sigma_factor;
 
  115     std::string 
name() 
const override;
 
  117     std::unique_ptr<IDistribution1D> 
distribution_impl(
double mean, 
double stddev) 
const override;
 
  140     std::string 
name() 
const override;
 
  142     std::unique_ptr<IDistribution1D> 
distribution_impl(
double median, 
double hwhm) 
const override;
 
  165     std::string 
name() 
const override;
 
  167     std::unique_ptr<IDistribution1D> 
distribution_impl(
double mean, 
double stddev) 
const override;
 
  190     std::string 
name() 
const override;
 
  192     std::unique_ptr<IDistribution1D> 
distribution_impl(
double mean, 
double stddev) 
const override;
 
  215     std::string 
name() 
const override;
 
  217     std::unique_ptr<IDistribution1D> 
distribution_impl(
double mean, 
double stddev) 
const override;
 
  222     return os << distribution.
pyString();
 
Defines and implements the standard mix-in ICloneable.
 
Defines class RealLimits.
 
std::ostream & operator<<(std::ostream &os, const BasicVector3D< T > &a)
Output to stream.
 
Interface for polymorphic classes that should not be copied, except by explicit cloning.
 
Interface for one-dimensional distributions.
 
A parameter value with a weight, as obtained when sampling from a distribution.
 
std::unique_ptr< IDistribution1D > distribution_impl(double mean, double stddev) const override
Returns underlying IDistribution1D object.
 
std::string name() const override
Returns distribution name for python-formatted text.
 
Uniform distribution function.
 
std::string name() const override
Returns distribution name for python-formatted text.
 
std::unique_ptr< IDistribution1D > distribution_impl(double mean, double stddev) const override
Returns underlying IDistribution1D object.
 
Gaussian distribution with standard deviation std_dev.
 
std::string name() const override
Returns distribution name for python-formatted text.
 
std::unique_ptr< IDistribution1D > distribution_impl(double mean, double stddev) const override
Returns underlying IDistribution1D object.
 
std::string name() const override
Returns distribution name for python-formatted text.
 
std::unique_ptr< IDistribution1D > distribution_impl(double mean, double stddev) const override
Returns underlying IDistribution1D object.
 
Lorentz distribution with median and hwhm.
 
std::string name() const override
Returns distribution name for python-formatted text.
 
std::unique_ptr< IDistribution1D > distribution_impl(double median, double hwhm) const override
Returns underlying IDistribution1D object.
 
Interface for one-dimensional ranged distributions.
 
std::string pyString() const
Prints python-formatted definition of the distribution.
 
RealLimits limits() const
Returns current limits of the distribution.
 
virtual std::unique_ptr< IDistribution1D > distribution_impl(double mean, double stddev) const =0
Returns underlying IDistribution1D object.
 
size_t nSamples() const
Returns number of samples to generate.
 
std::unique_ptr< IDistribution1D > distribution(double mean, double stddev) const
Public interface function to underlying IDistribution1D object.
 
double sigmaFactor() const
Returns sigma factor to use during sampling.
 
virtual std::string name() const =0
Returns distribution name for python-formatted text.
 
Limits for a real fit parameter.
 
static RealLimits limitless()
Creates an object withoud bounds (default)