RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
mle.hpp File Reference
#include <randlib/continuous/beta.hpp>
#include <randlib/continuous/beta_prime.hpp>
#include <randlib/continuous/cauchy.hpp>
#include <randlib/continuous/degenerate.hpp>
#include <randlib/continuous/exponential.hpp>
#include <randlib/continuous/fisher_f.hpp>
#include <randlib/continuous/frechet.hpp>
#include <randlib/continuous/generalized_extreme_value.hpp>
#include <randlib/continuous/generalized_pareto.hpp>
#include <randlib/continuous/gamma.hpp>
#include <randlib/continuous/gumbel.hpp>
#include <randlib/continuous/inverse_gamma.hpp>
#include <randlib/continuous/inverse_gaussian.hpp>
#include <randlib/continuous/laplace.hpp>
#include <randlib/continuous/levy.hpp>
#include <randlib/continuous/log_normal.hpp>
#include <randlib/continuous/logistic.hpp>
#include <randlib/continuous/log_stable.hpp>
#include <randlib/continuous/nakagami.hpp>
#include <randlib/continuous/noncentral_chi_squared.hpp>
#include <randlib/continuous/noncentral_t.hpp>
#include <randlib/continuous/normal.hpp>
#include <randlib/continuous/pareto.hpp>
#include <randlib/continuous/student_t.hpp>
#include <randlib/continuous/stable.hpp>
#include <randlib/continuous/stable_count.hpp>
#include <randlib/continuous/uniform.hpp>
#include <randlib/continuous/weibull.hpp>
#include <randlib/discrete/bernoulli.hpp>
#include <randlib/discrete/binomial.hpp>
#include <randlib/discrete/geometric.hpp>
#include <randlib/discrete/negative_binomial.hpp>
#include <randlib/discrete/poisson.hpp>
#include <randlib/discrete/uniform_discrete.hpp>
#include <randlib/fit/result.hpp>
#include <randlib/math/optimize.hpp>
#include <algorithm>
#include <array>
#include <cmath>
#include <concepts>
#include <initializer_list>
#include <limits>
#include <map>
#include <numbers>
#include <numeric>
#include <optional>
#include <span>
#include <stdexcept>
#include <string>
#include <string_view>
#include <utility>
#include <vector>
Include dependency graph for mle.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  randlib::detail::FitParameter
 
struct  randlib::detail::FitModel< NormalRand< Real > >
 
struct  randlib::detail::FitModel< StudentTRand< Real > >
 
struct  randlib::detail::FitModel< NoncentralTRand< Real > >
 
struct  randlib::detail::FitModel< CauchyRand< Real > >
 
struct  randlib::detail::FitModel< StableRand< Real > >
 
struct  randlib::detail::FitModel< LogStableRand< Real > >
 
struct  randlib::detail::FitModel< StableCountRand< Real > >
 
struct  randlib::detail::FitModel< GumbelRand< Real > >
 
struct  randlib::detail::FitModel< FrechetRand< Real > >
 
struct  randlib::detail::FitModel< GeneralizedParetoRand< Real > >
 
struct  randlib::detail::FitModel< GeneralizedExtremeValueRand< Real > >
 
struct  randlib::detail::FitModel< FisherFRand< Real > >
 
struct  randlib::detail::FitModel< InverseGammaRand< Real > >
 
struct  randlib::detail::FitModel< InverseGaussianRand< Real > >
 
struct  randlib::detail::FitModel< NoncentralChiSquaredRand< Real > >
 
struct  randlib::detail::FitModel< LogNormalRand< Real > >
 
struct  randlib::detail::FitModel< ExponentialRand< Real > >
 
struct  randlib::detail::FitModel< GammaRand< Real > >
 
struct  randlib::detail::FitModel< ChiSquaredRand< Real > >
 
struct  randlib::detail::FitModel< ErlangRand< Real > >
 
struct  randlib::detail::FitModel< BetaRand< Real > >
 
struct  randlib::detail::FitModel< ArcsineRand< Real > >
 
struct  randlib::detail::FitModel< BetaPrimeRand< Real > >
 
struct  randlib::detail::FitModel< ParetoRand< Real > >
 
struct  randlib::detail::FitModel< WeibullRand< Real > >
 
struct  randlib::detail::FitModel< LaplaceRand< Real > >
 
struct  randlib::detail::FitModel< LogisticRand< Real > >
 
struct  randlib::detail::FitModel< LevyRand< Real > >
 
struct  randlib::detail::FitModel< RayleighRand< Real > >
 
struct  randlib::detail::FitModel< UniformRand< Real > >
 
struct  randlib::detail::FitModel< DegenerateRand >
 
struct  randlib::detail::FitModel< PoissonRand< Int > >
 
struct  randlib::detail::FitModel< BernoulliRand >
 
struct  randlib::detail::FitModel< GeometricRand< Int > >
 
struct  randlib::detail::FitModel< BinomialRand< Int > >
 
struct  randlib::detail::FitModel< NegativeBinomialRand< Int, Shape > >
 
struct  randlib::detail::FitModel< UniformDiscreteRand< Int > >
 

Namespaces

namespace  randlib
 
namespace  randlib::detail
 

Concepts

concept  randlib::detail::FittableModel
 

Typedefs

using randlib::detail::FixedParameterMap = std::map< std::string, double, std::less<> >
 

Functions

double randlib::detail::toUnconstrained (double value, const FitParameter &parameter)
 
double randlib::detail::fromUnconstrained (double value, const FitParameter &parameter)
 
bool randlib::detail::withinBounds (double value, const FitParameter &parameter)
 
void randlib::detail::requireMethod (Method method, std::string_view distribution, std::initializer_list< Method > supported={Method::MLE, Method::MethodOfMoments})
 
template<class Distribution >
bool randlib::detail::requiresOptimization (Method method, const FixedParameterMap &fixed)
 
template<class T >
DoublePair randlib::detail::sampleMeanAndVariance (std::span< const T > sample)
 
template<class T >
double randlib::detail::sampleQuantile (std::span< const T > sample, double probability)
 
template<std::size_t Rows, std::size_t Columns>
double randlib::detail::bilinearInterpolation (const std::array< double, Rows > &rowGrid, const std::array< double, Columns > &columnGrid, const std::array< std::array< double, Columns >, Rows > &values, double row, double column)
 
std::optional< int > randlib::detail::fixedPositiveInteger (const FixedParameterMap &fixed, std::string_view name, std::string_view distribution)
 
std::vector< std::vector< double > > randlib::detail::inverse (std::vector< std::vector< double > > matrix)
 
template<class Distribution , class LogLikelihood >
double randlib::detail::negativeLogLikelihood (std::span< const double > parameters, const LogLikelihood &logLikelihood)
 
template<class Distribution , class Objective >
void randlib::detail::addUncertainty (FitResult< Distribution > &result, std::span< const FitParameter > specifications, const Objective &naturalObjective)
 
template<class Distribution , class LogLikelihood >
FitResult< Distribution > randlib::detail::fitLikelihood (std::span< const typename Distribution::value_type > initializationSample, FitOptions options, const LogLikelihood &logLikelihood, bool forceOptimization=false)
 
template<class Distribution >
requires detail::FittableModel<Distribution>
FitResult< Distribution > randlib::fit (std::span< const typename Distribution::value_type > sample, FitOptions options={})
 
template<class Distribution >
requires detail::FittableModel<Distribution>
FitResult< Distribution > randlib::fit (std::span< const typename Distribution::value_type > sample, Method method)