template<typename T = double>
liarsdice::bayesian::PriorDistribution class

Abstract base class for prior distributions in Bayesian analysis.

Template parameters
T Floating point type for calculations

Provides a common interface for all prior distributions with support for evaluation, sampling, and moment calculations.

Derived classes

template<typename T = double>
class BetaPrior
Beta distribution prior - conjugate for Bernoulli/Binomial likelihoods.
template<typename T = double>
class GammaPrior
Gamma distribution prior - conjugate for Poisson and Exponential likelihoods.
template<typename T = double>
class NormalPrior
Normal distribution prior - conjugate for Normal likelihood with known variance.
template<typename T = double>
class UniformPrior
Uniform distribution prior - minimally informative prior.

Public types

using value_type = T

Constructors, destructors, conversion operators

~PriorDistribution() defaulted virtual

Public functions

auto pdf(T x) const -> T pure virtual
Evaluate the probability density at a given point.
auto log_pdf(T x) const -> T pure virtual
Evaluate the log probability density.
auto cdf(T x) const -> T pure virtual
Evaluate the cumulative distribution function.
auto sample(boost::random::mt19937& gen) const -> T pure virtual
Generate a random sample from the distribution.
auto sample(std::size_t n, boost::random::mt19937& gen) const -> std::vector<T> virtual
Generate multiple samples from the distribution.
auto mean() const -> T pure virtual
Get the mean of the distribution.
auto variance() const -> T pure virtual
Get the variance of the distribution.
auto mode() const -> std::optional<T> pure virtual
Get the mode of the distribution (if exists)
auto support() const -> std::pair<T, T> pure virtual
Get the support of the distribution.
auto name() const -> std::string pure virtual
Get the name of the distribution.
auto clone() const -> std::unique_ptr<PriorDistribution<T>> pure virtual
Clone the distribution.
auto is_conjugate_to(const std::string& likelihood_family) const -> bool virtual
Check if this is a conjugate prior for a given likelihood.

Function documentation

template<typename T>
T liarsdice::bayesian::PriorDistribution<T>::pdf(T x) const pure virtual

Evaluate the probability density at a given point.

Parameters
x Point at which to evaluate the PDF
Returns Probability density value

template<typename T>
T liarsdice::bayesian::PriorDistribution<T>::log_pdf(T x) const pure virtual

Evaluate the log probability density.

Parameters
x Point at which to evaluate the log PDF
Returns Log probability density value

template<typename T>
T liarsdice::bayesian::PriorDistribution<T>::cdf(T x) const pure virtual

Evaluate the cumulative distribution function.

Parameters
x Point at which to evaluate the CDF
Returns Cumulative probability

template<typename T>
T liarsdice::bayesian::PriorDistribution<T>::sample(boost::random::mt19937& gen) const pure virtual

Generate a random sample from the distribution.

Parameters
gen Random number generator
Returns Random sample

template<typename T>
std::vector<T> liarsdice::bayesian::PriorDistribution<T>::sample(std::size_t n, boost::random::mt19937& gen) const virtual

Generate multiple samples from the distribution.

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

template<typename T>
std::pair<T, T> liarsdice::bayesian::PriorDistribution<T>::support() const pure virtual

Get the support of the distribution.

Returns Pair of (lower_bound, upper_bound)