SedSat3 1.1.6
Sediment Source Apportionment Tool - Advanced statistical methods for environmental pollution research
Loading...
Searching...
No Matches
cmbdistribution.h
Go to the documentation of this file.
1#ifndef CMBDISTRIBUTION_H
2#define CMBDISTRIBUTION_H
3
4#include <vector>
5#include "TimeSeries.h"
6
15 normal,
16 lognormal,
17 dirichlet,
18 none,
19 uniform
20};
21
34
96{
97public:
108 Distribution();
109
119 Distribution(const Distribution &dist);
120
129
152 double Eval(const double &x) const;
153
171 static double Eval(const double &x, const vector<double> parameters, distribution_type distribution);
172
205 double EvalLog(const double &x);
206
237 TimeSeries<double> EvaluateAsTimeSeries(int numberofpoint=100, const double &stdcoeff = 4);
238
252 static TimeSeries<double> EvaluateAsTimeSeries(int numberofpoints, const double &stdcoeff,
253 const vector<double> parameters,
254 distribution_type &dist_type);
255
267 vector<double> parameters;
268
276
289 void SetType(const distribution_type &typ);
290
309
317 void SetDataMean(const double &val) {
318 mean_val = val;
319 }
320
328 void SetDataSTDev(const double &val) {
329 std_val = val;
330 }
331
336 double DataMean() {
337 return mean_val;
338 }
339
344 double DataSTDev() {
345 return std_val;
346 }
347
369 bool operator==(const string &dist_type);
370
371private:
380 static double pi;
381
391 double mean_val = 0;
392
399 double std_val = 0;
400};
401
402#endif // CMBDISTRIBUTION_H
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(μ, σ²)