BornAgain
1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
|
Interface for one-dimensional ranged distributions. More...
Public Member Functions | |
IRangedDistribution () | |
IRangedDistribution (size_t n_samples, double sigma_factor, const RealLimits &limits=RealLimits::limitless()) | |
IRangedDistribution (size_t n_samples, double sigma_factor, double min, double max) | |
Initializes Ranged distribution with given number of samples, sigma factor (range in standard deviations to take into account during sample generation) and limits (either RealLimits object or just min and max limits). More... | |
~IRangedDistribution () override | |
IRangedDistribution * | clone () const override=0 |
std::unique_ptr< IDistribution1D > | distribution (double mean, double stddev) const |
Public interface function to underlying IDistribution1D object. More... | |
std::vector< std::vector< ParameterSample > > | generateSamples (const std::vector< double > &mean, const std::vector< double > &stddev) const |
Generates list of sampled values with their weights from given means and standard deviations. More... | |
std::vector< ParameterSample > | generateSamples (double mean, double stddev) const |
RealLimits | limits () const |
Returns current limits of the distribution. More... | |
virtual std::string | name () const =0 |
Returns distribution name for python-formatted text. More... | |
size_t | nSamples () const |
Returns number of samples to generate. More... | |
void | setLimits (const RealLimits &limits) |
double | sigmaFactor () const |
Returns sigma factor to use during sampling. More... | |
virtual void | transferToCPP () |
Used for Python overriding of clone (see swig/tweaks.py) More... | |
Protected Member Functions | |
virtual std::unique_ptr< IDistribution1D > | distribution_impl (double mean, double stddev) const =0 |
Returns underlying IDistribution1D object. More... | |
Private Member Functions | |
void | checkInitialization () |
Private Attributes | |
RealLimits | m_limits |
size_t | m_n_samples |
double | m_sigma_factor |
Interface for one-dimensional ranged distributions.
All derived distributions allow for generating samples in-place for known mean and standard deviation (except for RangedDistributionLorentz which uses median and hwhm).
Definition at line 38 of file RangedDistributions.h.
IRangedDistribution::IRangedDistribution | ( | ) |
Definition at line 35 of file RangedDistributions.cpp.
References checkInitialization().
IRangedDistribution::IRangedDistribution | ( | size_t | n_samples, |
double | sigma_factor, | ||
const RealLimits & | limits = RealLimits::limitless() |
||
) |
Definition at line 41 of file RangedDistributions.cpp.
References checkInitialization().
IRangedDistribution::IRangedDistribution | ( | size_t | n_samples, |
double | sigma_factor, | ||
double | min, | ||
double | max | ||
) |
Initializes Ranged distribution with given number of samples, sigma factor (range in standard deviations to take into account during sample generation) and limits (either RealLimits object or just min and max limits).
By default n_samples = 5, sigma_factor = 2.0, while the limits are (-inf, +inf).
Definition at line 48 of file RangedDistributions.cpp.
References checkInitialization().
|
overridedefault |
|
private |
Definition at line 95 of file RangedDistributions.cpp.
References RealLimits::hasLowerAndUpperLimits(), RealLimits::lowerLimit(), m_limits, m_n_samples, m_sigma_factor, and RealLimits::upperLimit().
Referenced by IRangedDistribution().
|
overridepure virtual |
Implements ICloneable.
Implemented in RangedDistributionCosine, RangedDistributionLogNormal, RangedDistributionGaussian, RangedDistributionLorentz, and RangedDistributionGate.
std::unique_ptr< IDistribution1D > IRangedDistribution::distribution | ( | double | mean, |
double | stddev | ||
) | const |
Public interface function to underlying IDistribution1D object.
Definition at line 87 of file RangedDistributions.cpp.
References distribution_impl().
Referenced by generateSamples().
|
protectedpure virtual |
Returns underlying IDistribution1D object.
Implemented in RangedDistributionLorentz, RangedDistributionCosine, RangedDistributionLogNormal, RangedDistributionGaussian, and RangedDistributionGate.
Referenced by distribution().
std::vector< std::vector< ParameterSample > > IRangedDistribution::generateSamples | ( | const std::vector< double > & | mean, |
const std::vector< double > & | stddev | ||
) | const |
Generates list of sampled values with their weights from given means and standard deviations.
Definition at line 71 of file RangedDistributions.cpp.
References generateSamples().
std::vector< ParameterSample > IRangedDistribution::generateSamples | ( | double | mean, |
double | stddev | ||
) | const |
Definition at line 57 of file RangedDistributions.cpp.
References distribution(), m_limits, m_n_samples, m_sigma_factor, and ParameterSample::weight.
Referenced by generateSamples().
|
inline |
Returns current limits of the distribution.
Definition at line 64 of file RangedDistributions.h.
References m_limits.
Referenced by pyfmt2::printRangedDistribution(), and setLimits().
|
pure virtual |
Returns distribution name for python-formatted text.
Implemented in RangedDistributionCosine, RangedDistributionLogNormal, RangedDistributionGaussian, RangedDistributionLorentz, and RangedDistributionGate.
Referenced by pyfmt2::printRangedDistribution().
|
inline |
Returns number of samples to generate.
Definition at line 68 of file RangedDistributions.h.
References m_n_samples.
Referenced by pyfmt2::printRangedDistribution().
|
inline |
|
inline |
Returns sigma factor to use during sampling.
Definition at line 66 of file RangedDistributions.h.
References m_sigma_factor.
Referenced by pyfmt2::printRangedDistribution().
|
inlinevirtualinherited |
Used for Python overriding of clone (see swig/tweaks.py)
Definition at line 34 of file ICloneable.h.
|
private |
Definition at line 87 of file RangedDistributions.h.
Referenced by checkInitialization(), generateSamples(), limits(), and setLimits().
|
private |
Definition at line 85 of file RangedDistributions.h.
Referenced by checkInitialization(), generateSamples(), and nSamples().
|
private |
Definition at line 86 of file RangedDistributions.h.
Referenced by checkInitialization(), generateSamples(), and sigmaFactor().