24#pragma clang diagnostic push
25#pragma clang diagnostic ignored "-Wdeprecated-declarations"
26#elif defined(__GNUC__)
27#pragma GCC diagnostic push
28#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
29#elif defined(_MSC_VER)
31#pragma warning(disable : 4996)
40template <
class Distribution,
class Prior>
43template <
class Distribution,
class Prior>
46template <
class Distribution,
class Prior>
48 BayesModel<Distribution, Prior>::posterior(sample,
prior);
51template <
class Distribution,
class Prior,
class Fixed>
53 requires(std::span<const typename Distribution::value_type> sample,
const Prior &
prior,
Fixed fixed) {
54 ConditionalBayesModel<Distribution, Prior>::posterior(sample,
prior, fixed);
57template <std::
floating_po
int Real>
68template <std::
floating_po
int Real>
79template <std::
floating_po
int Real>
89template <std::
integral Int>
99template <std::
floating_po
int Real>
109template <std::
floating_po
int Real>
120template <std::
floating_po
int Real>
130template <std::
floating_po
int Real>
141template <std::
integral Int>
151template <std::
integral Int,
class Shape>
161template <std::
floating_po
int Real>
172template <std::
floating_po
int Real>
182template <std::
floating_po
int Real>
194template <
class Distribution,
class Prior>
196auto fit_bayes(std::span<const typename Distribution::value_type> sample,
const Prior &prior)
203template <
class Distribution, std::ranges::contiguous_range Range,
class Prior>
204 requires std::same_as<std::remove_cv_t<std::ranges::range_value_t<Range>>,
typename Distribution::value_type> &&
208 return fit_bayes<Distribution>(std::span<const typename Distribution::value_type>(sample), prior);
211template <
class Distribution, std::ranges::contiguous_range Range,
class Prior,
class Fixed>
212 requires std::same_as<std::remove_cv_t<std::ranges::range_value_t<Range>>,
typename Distribution::value_type> &&
214auto fit_bayes(
const Range &sample,
const Prior &prior, Fixed fixed)
216 if (std::ranges::empty(sample))
219 std::span<const typename Distribution::value_type>(sample), prior, fixed);
222template <std::ranges::contiguous_range Range, std::
floating_po
int Real>
223 requires std::same_as<std::remove_cv_t<std::ranges::range_value_t<Range>>, Real>
226 return fit_bayes<NormalRand<Real>>(sample, prior);
229template <std::ranges::contiguous_range Range, std::
floating_po
int Real>
230 requires std::same_as<std::remove_cv_t<std::ranges::range_value_t<Range>>, Real>
233 return fit_bayes<ExponentialRand<Real>>(sample, prior);
236template <std::ranges::contiguous_range Range>
237 requires std::integral<std::remove_cv_t<std::ranges::range_value_t<Range>>>
240 using Int = std::remove_cv_t<std::ranges::range_value_t<Range>>;
241 return fit_bayes<PoissonRand<Int>>(sample, prior);
246#if defined(__clang__)
247#pragma clang diagnostic pop
248#elif defined(__GNUC__)
249#pragma GCC diagnostic pop
250#elif defined(_MSC_VER)
The BetaRand class Beta distribution.
Definition continuous/beta.hpp:246
BetaRand FitProbabilityBayes(std::span< const IntType > sample, const BetaDistribution<> &priorDistribution, bool MAP=false)
Fit probability p with prior assumption p ~ Beta(α, β)
Definition binomial.hpp:732
The BinomialRand class Binomial distribution.
Definition binomial.hpp:197
The ExponentialRand class Exponential distribution.
Definition exponential.hpp:28
GammaRand< RealType > FitRateBayes(std::span< const RealType > sample, const GammaDistribution< RealType > &priorDistribution, bool MAP=false)
set rate, returned by bayesian estimation
Definition continuous/gamma.hpp:934
The GammaRand class Gamma distribution.
Definition continuous/gamma.hpp:295
The InverseGammaRand class Inverse-Gamma distribution.
Definition inverse_gamma.hpp:23
The LogNormalRand class Log-Normal distribution.
Definition log_normal.hpp:25
InverseGammaRand< RealType > FitScaleBayes(std::span< const RealType > sample, const InverseGammaRand< RealType > &priorDistribution, bool MAP=false)
Set scale, using bayesian inference.
Definition log_normal.hpp:374
NormalInverseGammaRand< RealType > FitBayes(std::span< const RealType > sample, const NormalInverseGammaRand< RealType > &priorDistribution, bool MAP=false)
Set parameters, using bayesian inference.
Definition log_normal.hpp:394
NormalRand< RealType > FitLocationBayes(std::span< const RealType > sample, const NormalRand< RealType > &priorDistribution, bool MAP=false)
Set location, using bayesian inference.
Definition log_normal.hpp:356
BetaRand FitProbabilityBayes(std::span< const IntType > sample, const BetaDistribution<> &priorDistribution, bool MAP=false)
Definition negative_binomial.hpp:390
The NegativeBinomialRand class Negative binomial distribution.
Definition negative_binomial.hpp:133
The NormalInverseGammaRand class Normal-inverse-gamma distribution.
Definition normal_inverse_gamma.hpp:24
The NormalRand class Normal distribution.
Definition normal.hpp:31
NormalInverseGammaRand< RealType > FitBayes(std::span< const RealType > sample, const NormalInverseGammaRand< RealType > &priorDistribution, bool MAP=false)
set parameters, returned by bayesian estimation
Definition normal.hpp:494
NormalRand< RealType > FitLocationBayes(std::span< const RealType > sample, const NormalRand< RealType > &priorDistribution, bool MAP=false)
set location, returned by bayesian estimation
Definition normal.hpp:464
InverseGammaRand< RealType > FitVarianceBayes(std::span< const RealType > sample, const InverseGammaRand< RealType > &priorDistribution, bool MAP=false)
set variance, returned by bayesian estimation
Definition normal.hpp:478
The ParetoRand class Pareto distribution.
Definition pareto.hpp:24
GammaRand< RealType > FitShapeBayes(std::span< const RealType > sample, const GammaDistribution< RealType > &priorDistribution, bool MAP=false)
Fit α, using bayesian inference.
Definition pareto.hpp:373
The PoissonRand class Poisson distribution.
Definition poisson.hpp:26
GammaRand FitBayes(std::span< const IntType > sample, const GammaDistribution<> &priorDistribution, bool MAP=false)
fit rate λ via Bayes estimation
Definition poisson.hpp:501
The WeibullRand class Weibull distribution.
Definition weibull.hpp:21
InverseGammaRand< RealType > FitScaleBayes(std::span< const RealType > sample, const InverseGammaRand< RealType > &priorDistribution, bool MAP=false)
Fit λ, using bayesian inference.
Definition weibull.hpp:345
The fit_error class Thrown when a distribution cannot be fitted to a sample; code() tells why.
Definition errors.hpp:36
Real standardNormal(G &g)
Ziggurat algorithm of Marsaglia and Tsang with 256 layers and an explicit sign bit.
Definition variates.hpp:45
Definition bivariate_normal.hpp:10
@ TooFewElements
the sample is too small
auto fit_bayes(std::span< const typename Distribution::value_type > sample, const Prior &prior)
Definition bayes.hpp:196
static GammaRand< Real > posterior(std::span< const Real > sample, const GammaRand< Real > &prior)
Definition bayes.hpp:82
static NormalInverseGammaRand< Real > posterior(std::span< const Real > sample, const NormalInverseGammaRand< Real > &prior)
Definition bayes.hpp:71
static NormalInverseGammaRand< Real > posterior(std::span< const Real > sample, const NormalInverseGammaRand< Real > &prior)
Definition bayes.hpp:60
static GammaRand< double > posterior(std::span< const Int > sample, const GammaRand< double > &prior)
Definition bayes.hpp:92
static BetaRand< double > posterior(std::span< const Int > sample, const BetaRand< double > &prior, int number)
Definition bayes.hpp:144
static InverseGammaRand< Real > posterior(std::span< const Real > sample, const InverseGammaRand< Real > &prior, double location)
Definition bayes.hpp:133
static NormalRand< Real > posterior(std::span< const Real > sample, const NormalRand< Real > &prior, double variance)
Definition bayes.hpp:123
static BetaRand< double > posterior(std::span< const Int > sample, const BetaRand< double > &prior, Shape number)
Definition bayes.hpp:154
static InverseGammaRand< Real > posterior(std::span< const Real > sample, const InverseGammaRand< Real > &prior, double location)
Definition bayes.hpp:112
static NormalRand< Real > posterior(std::span< const Real > sample, const NormalRand< Real > &prior, double variance)
Definition bayes.hpp:102
static GammaRand< Real > posterior(std::span< const Real > sample, const GammaRand< Real > &prior, double scale)
Definition bayes.hpp:175
static InverseGammaRand< Real > posterior(std::span< const Real > sample, const InverseGammaRand< Real > &prior, double shape)
Definition bayes.hpp:164