liarsdice::statistics::IProbabilityDistribution class

Base interface for probability distributions.

Provides unified interface for various boost::math distributions with support for PDF, CDF, quantiles, and random sampling.

Derived classes

template<typename Distribution>
class DistributionWrapper
Template wrapper for boost::math distributions.
template<typename Distribution>
class DistributionWrapper
Template wrapper for boost::math distributions.
template<typename Distribution>
class DistributionWrapper
Template wrapper for boost::math distributions.
template<typename Distribution>
class DistributionWrapper
Template wrapper for boost::math distributions.
template<typename Distribution>
class DistributionWrapper
Template wrapper for boost::math distributions.
template<typename Distribution>
class DistributionWrapper
Template wrapper for boost::math distributions.
template<typename Distribution>
class DistributionWrapper
Template wrapper for boost::math distributions.

Constructors, destructors, conversion operators

~IProbabilityDistribution() defaulted virtual

Public functions

auto pdf(double x) const -> double pure virtual
Probability density function.
auto cdf(double x) const -> double pure virtual
Cumulative distribution function.
auto quantile(double p) const -> double pure virtual
Quantile function (inverse CDF)
auto mean() const -> double pure virtual
Mean of the distribution.
auto variance() const -> double pure virtual
Variance of the distribution.
auto standard_deviation() const -> double virtual
Standard deviation.
auto sample(br::mt19937& gen) const -> double pure virtual
Generate random sample.
auto sample(br::mt19937& gen, std::size_t n) const -> std::vector<double> virtual
Generate multiple random samples.
auto name() const -> std::string pure virtual
Get distribution name.

Function documentation

double liarsdice::statistics::IProbabilityDistribution::pdf(double x) const pure virtual

Probability density function.

Parameters
x Point to evaluate
Returns PDF value at x

double liarsdice::statistics::IProbabilityDistribution::cdf(double x) const pure virtual

Cumulative distribution function.

Parameters
x Point to evaluate
Returns CDF value at x

double liarsdice::statistics::IProbabilityDistribution::quantile(double p) const pure virtual

Quantile function (inverse CDF)

Parameters
p Probability (0 < p < 1)
Returns Quantile value

double liarsdice::statistics::IProbabilityDistribution::mean() const pure virtual

Mean of the distribution.

Returns Mean value

double liarsdice::statistics::IProbabilityDistribution::variance() const pure virtual

Variance of the distribution.

Returns Variance

double liarsdice::statistics::IProbabilityDistribution::standard_deviation() const virtual

Standard deviation.

Returns Standard deviation

double liarsdice::statistics::IProbabilityDistribution::sample(br::mt19937& gen) const pure virtual

Generate random sample.

Parameters
gen Random number generator
Returns Random value from distribution

std::vector<double> liarsdice::statistics::IProbabilityDistribution::sample(br::mt19937& gen, std::size_t n) const virtual

Generate multiple random samples.

Parameters
gen Random number generator
n Number of samples
Returns Vector of samples

std::string liarsdice::statistics::IProbabilityDistribution::name() const pure virtual

Get distribution name.

Returns String name of distribution