Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
FlatMarginal Class Referencefinal

Continuous uniform marginal distribution on [a,b]. More...

#include <FlatMarginal.h>

Inheritance diagram for FlatMarginal:
Collaboration diagram for FlatMarginal:

Public Member Functions

 FlatMarginal (double a, double b, unsigned int seed=std::random_device{}())
 Constructs a uniform marginal on [a,b].
 
std::vector< double > rvs (std::size_t n) override
 Draws random samples from the marginal distribution.
 
double logpdf (double x) override
 Evaluates the logarithm of the probability density at x.
 
PDFDiff f_df_ddf (double x) override
 
double cdf (double x) override
 Evaluates the cumulative distribution function at x.
 
double ppf (double p) override
 Evaluates the quantile function (inverse CDF).
 
double mean () override
 Returns the mean of the distribution.
 
double std () override
 Returns the standard deviation of the distribution.
 
- Public Member Functions inherited from IMarginalDistribution
virtual ~IMarginalDistribution ()=default
 
virtual Vector sample (std::size_t n)=0
 
virtual ~IMarginalDistribution ()=default
 Virtual destructor for safe polymorphic deletion.
 

Detailed Description

Continuous uniform marginal distribution on [a,b].

This class models the flat probability density:

\[
  f(x) = \frac{1}{b-a}, \qquad x \in [a,b].
\]

It provides:

  • random variate generation,
  • log-density,
  • CDF,
  • inverse CDF,
  • analytical mean and standard deviation.

A GSL random-number generator is owned internally.

The constructor rejects non-finite or reversed bounds. The density and log-density use the closed support convention at the two endpoints; this choice has no effect on probabilities for a continuous distribution.

Definition at line 75 of file FlatMarginal.h.

Constructor & Destructor Documentation

◆ FlatMarginal()

FlatMarginal::FlatMarginal ( double  a,
double  b,
unsigned int  seed = std::random_device{}() 
)
explicit

Constructs a uniform marginal on [a,b].

Parameters
aLower bound of the support.
bUpper bound of the support.
seedSeed for the internal RNG.

Definition at line 3 of file FlatMarginal.cpp.

Member Function Documentation

◆ cdf()

double FlatMarginal::cdf ( double  x)
overridevirtual

Evaluates the cumulative distribution function at x.

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

Implements IMarginalDistribution.

Definition at line 36 of file FlatMarginal.cpp.

◆ f_df_ddf()

PDFDiff FlatMarginal::f_df_ddf ( double  x)
overridevirtual

Implements IMarginalDistribution.

Definition at line 31 of file FlatMarginal.cpp.

◆ logpdf()

double FlatMarginal::logpdf ( double  x)
overridevirtual

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).

Implements IMarginalDistribution.

Definition at line 22 of file FlatMarginal.cpp.

◆ mean()

double FlatMarginal::mean ( )
overridevirtual

Returns the mean of the distribution.

Returns
Distribution mean.

Implements IMarginalDistribution.

Definition at line 44 of file FlatMarginal.cpp.

◆ ppf()

double FlatMarginal::ppf ( double  p)
overridevirtual

Evaluates the quantile function (inverse CDF).

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

Implements IMarginalDistribution.

Definition at line 40 of file FlatMarginal.cpp.

◆ rvs()

std::vector< double > FlatMarginal::rvs ( std::size_t  n)
overridevirtual

Draws random samples from the marginal distribution.

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

Implements IMarginalDistribution.

Definition at line 15 of file FlatMarginal.cpp.

◆ std()

double FlatMarginal::std ( )
overridevirtual

Returns the standard deviation of the distribution.

Returns
Distribution standard deviation.

Implements IMarginalDistribution.

Definition at line 48 of file FlatMarginal.cpp.


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