RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
singular.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <span>
4
9
10namespace randlib
11{
12
18{
19protected:
21
22public:
24
25protected:
26private:
27 [[nodiscard]] double Hazard(const double &) const override;
28 [[nodiscard]] double Mode() const override;
29 long double ExpectedValue(const std::function<double(double)> &funPtr, double minPoint,
30 double maxPoint) const override;
31 [[nodiscard]] double LikelihoodFunction(std::span<const double> sample) const override;
32 [[nodiscard]] double LogLikelihoodFunction(std::span<const double> sample) const override;
33};
34
35} // namespace randlib
36
37namespace randlib
38{
39
43
44inline double SingularDistribution::Hazard(const double &) const
45{
46 return NAN;
47}
48
49inline long double SingularDistribution::ExpectedValue(const std::function<double(double)> &, double, double) const
50{
51 return NAN;
52}
53
54inline double SingularDistribution::Mode() const
55{
56 return NAN;
57}
58
59inline double SingularDistribution::LikelihoodFunction(std::span<const double>) const
60{
61 return NAN;
62}
63
64inline double SingularDistribution::LogLikelihoodFunction(std::span<const double>) const
65{
66 return NAN;
67}
68
69} // namespace randlib
virtual void sample(detail::EngineRef g, std::span< T > outputData) const
Fills the output with variate(g); distributions with a faster bulk algorithm override it.
Definition distribution.hpp:66
The SingularDistribution class Abstract class for all singular distributions.
Definition singular.hpp:18
SingularDistribution()
Definition singular.hpp:40
virtual ~SingularDistribution()
Definition singular.hpp:23
The UnivariateDistribution class Abstract class for all univariate probability distributions.
Definition univariate.hpp:28
Definition bivariate_normal.hpp:10