1#ifndef CMBDISTRIBUTION_H
2#define CMBDISTRIBUTION_H
152 double Eval(
const double &
x)
const;
Represents a parametric probability distribution for uncertainty quantification.
double Eval(const double &x) const
Evaluate probability density function at a given value.
vector< double > parameters
Distribution parameters vector.
double EvalLog(const double &x)
Evaluate natural logarithm of probability density.
double std_val
Empirical standard deviation from original sample data.
TimeSeries< double > EvaluateAsTimeSeries(int numberofpoint=100, const double &stdcoeff=4)
Generate time series representation of the distribution for plotting.
double DataMean()
Get the stored empirical mean.
distribution_type distribution
The type of probability distribution.
void SetDataMean(const double &val)
Set the empirical mean from original data.
double DataSTDev()
Get the stored empirical standard deviation.
Distribution & operator=(const Distribution &dist)
Assignment operator.
void SetType(const distribution_type &typ)
Set the distribution type and resize parameters vector.
static double pi
Mathematical constant π (pi)
double mean_val
Empirical mean from original sample data.
double Mean(parameter_mode param_mode=parameter_mode::based_on_fitted_distribution)
Calculate the mean (expected value) of the distribution.
void SetDataSTDev(const double &val)
Set the empirical standard deviation from original data.
bool operator==(const string &dist_type)
Compare distribution type with a string identifier.
Distribution()
Default constructor.
parameter_mode
Specifies whether to use direct data statistics or fitted distribution parameters.
@ based_on_fitted_distribution
Calculate from fitted distribution parameters.
@ direct
Use empirical statistics from data.
distribution_type
Enumeration of probability distribution types supported in SedSat3.
@ none
No distribution assigned (uninitialized state)
@ dirichlet
Dirichlet distribution (treated as uniform on simplex in current implementation)
@ lognormal
Lognormal distribution: ln(x) ~ N(μ, σ²), for strictly positive variables.
@ uniform
Uniform distribution on [0,1].
@ normal
Normal (Gaussian) distribution: p(x) = N(μ, σ²)