Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
IMarginalDistribution Struct Referenceabstract

Abstract interface for scalar marginal distributions. More...

#include <IMarginalDistribution.h>

Inheritance diagram for IMarginalDistribution:

Public Member Functions

virtual ~IMarginalDistribution ()=default
 
virtual Vector sample (std::size_t n)=0
 
virtual ~IMarginalDistribution ()=default
 Virtual destructor for safe polymorphic deletion.
 
virtual std::vector< double > rvs (std::size_t n)=0
 Draws random samples from the marginal distribution.
 
virtual double logpdf (double x)=0
 Evaluates the logarithm of the probability density at x.
 
virtual PDFDiff f_df_ddf (double x)=0
 
virtual double cdf (double x)=0
 Evaluates the cumulative distribution function at x.
 
virtual double ppf (double x)=0
 Evaluates the quantile function (inverse CDF).
 
virtual double mean ()=0
 Returns the mean of the distribution.
 
virtual double std ()=0
 Returns the standard deviation of the distribution.
 

Detailed Description

Abstract interface for scalar marginal distributions.

A marginal distribution represents a one-dimensional probability law for a nuisance parameter, observable, or latent variable.

Implementations should follow these conventions:

  • rvs returns independent samples,
  • logpdf returns the natural logarithm of the density (or mass proxy),
  • cdf returns $P(X \le x)$,
  • ppf returns the quantile associated with a probability,
  • mean and std return the first and second central-moment summary.

For distributions where some notions are not naturally defined (for example a discrete likelihood used only as a sampler), implementations should throw a documented exception rather than return a plausible placeholder value.

Definition at line 44 of file correlated_rng.cpp.

Constructor & Destructor Documentation

◆ ~IMarginalDistribution() [1/2]

virtual IMarginalDistribution::~IMarginalDistribution ( )
virtualdefault

◆ ~IMarginalDistribution() [2/2]

virtual IMarginalDistribution::~IMarginalDistribution ( )
virtualdefault

Virtual destructor for safe polymorphic deletion.

Member Function Documentation

◆ cdf()

virtual double IMarginalDistribution::cdf ( double  x)
pure virtual

Evaluates the cumulative distribution function at x.

Parameters
xPoint at which the CDF is evaluated.
Returns
$P(X \le x)$.

Implemented in FlatMarginal, GaussianMarginal, SplitGaussianMarginal, and LikelihoodMarginal.

◆ f_df_ddf()

virtual PDFDiff IMarginalDistribution::f_df_ddf ( double  x)
pure virtual

◆ logpdf()

virtual double IMarginalDistribution::logpdf ( double  x)
pure virtual

Evaluates the logarithm of the probability density at x.

For continuous distributions, this is usually $\log f(x)$. For discrete or sampler-only distributions, the exact semantics depend on the implementation.

Parameters
xPoint at which the log-density is evaluated.
Returns
Natural logarithm of the density (or implementation-defined proxy).

Implemented in FlatMarginal, GaussianMarginal, SplitGaussianMarginal, and LikelihoodMarginal.

◆ mean()

virtual double IMarginalDistribution::mean ( )
pure virtual

Returns the mean of the distribution.

Returns
Distribution mean.

Implemented in FlatMarginal, GaussianMarginal, LikelihoodMarginal, and SplitGaussianMarginal.

◆ ppf()

virtual double IMarginalDistribution::ppf ( double  x)
pure virtual

Evaluates the quantile function (inverse CDF).

Parameters
xProbability in the unit interval.
Returns
Quantile associated with x.

Implemented in FlatMarginal, GaussianMarginal, SplitGaussianMarginal, and LikelihoodMarginal.

◆ rvs()

virtual std::vector< double > IMarginalDistribution::rvs ( std::size_t  n)
pure virtual

Draws random samples from the marginal distribution.

Parameters
nNumber of samples to generate.
Returns
std::vector<double> of size n containing iid draws.

Implemented in FlatMarginal, GaussianMarginal, LikelihoodMarginal, and SplitGaussianMarginal.

◆ sample()

virtual Vector IMarginalDistribution::sample ( std::size_t  n)
pure virtual

Implemented in GaussianMarginal.

◆ std()

virtual double IMarginalDistribution::std ( )
pure virtual

Returns the standard deviation of the distribution.

Returns
Distribution standard deviation.

Implemented in FlatMarginal, GaussianMarginal, LikelihoodMarginal, and SplitGaussianMarginal.


The documentation for this struct was generated from the following files: