RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
result.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <map>
4#include <string>
5#include <utility>
6#include <vector>
7
8namespace randlib
9{
10
11enum class Method
12{
13 MLE,
15 UMVU,
16 Bayes,
18};
19
20enum class Criterion
21{
22 AIC,
23 BIC
24};
25
27{
29 std::map<std::string, double, std::less<>> fixed;
30 double tolerance = 1e-8;
31 int max_iterations = 20000;
32};
33
34template <class Distribution>
36{
37 explicit FitResult(Distribution fittedDistribution) : distribution(std::move(fittedDistribution)) {}
38
39 Distribution distribution;
40 double log_likelihood = 0;
41 double aic = 0;
42 double bic = 0;
43 std::vector<std::string> parameter_names;
44 std::vector<double> parameters;
45 std::vector<double> std_errors;
46 std::vector<std::vector<double>> covariance;
47 std::vector<bool> fixed;
48 bool converged = false;
49 int iterations = 0;
51};
52
53} // namespace randlib
Definition bivariate_normal.hpp:10
Criterion
Definition result.hpp:21
Method
Definition result.hpp:12
Definition result.hpp:27
std::map< std::string, double, std::less<> > fixed
Definition result.hpp:29
double tolerance
Definition result.hpp:30
int max_iterations
Definition result.hpp:31
Method method
Definition result.hpp:28
Definition result.hpp:36
std::vector< double > std_errors
Definition result.hpp:45
FitResult(Distribution fittedDistribution)
Definition result.hpp:37
std::vector< double > parameters
Definition result.hpp:44
double bic
Definition result.hpp:42
Method method
Definition result.hpp:50
std::vector< std::string > parameter_names
Definition result.hpp:43
Distribution distribution
Definition result.hpp:39
int iterations
Definition result.hpp:49
double log_likelihood
Definition result.hpp:40
std::vector< std::vector< double > > covariance
Definition result.hpp:46
double aic
Definition result.hpp:41
std::vector< bool > fixed
Definition result.hpp:47
bool converged
Definition result.hpp:48