RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
fwd.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <tuple>
4#include <utility>
5
6#if defined(RANDLIB_DISABLE_DEPRECATED_FIT_WARNINGS)
7#define RANDLIB_DEPRECATED_FIT_MEMBER
8#else
9#define RANDLIB_DEPRECATED_FIT_MEMBER \
10 [[deprecated("Use the non-mutating randlib::fit, randlib::fit_moments, or randlib::fit_bayes API")]]
11#endif
12
13#if defined(__clang__)
14#define RANDLIB_DETAIL_SUPPRESS_DEPRECATED_BEGIN \
15 _Pragma("clang diagnostic push") _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"")
16#define RANDLIB_DETAIL_SUPPRESS_DEPRECATED_END _Pragma("clang diagnostic pop")
17#elif defined(__GNUC__)
18#define RANDLIB_DETAIL_SUPPRESS_DEPRECATED_BEGIN \
19 _Pragma("GCC diagnostic push") _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"")
20#define RANDLIB_DETAIL_SUPPRESS_DEPRECATED_END _Pragma("GCC diagnostic pop")
21#elif defined(_MSC_VER)
22#define RANDLIB_DETAIL_SUPPRESS_DEPRECATED_BEGIN __pragma(warning(push)) __pragma(warning(disable : 4996))
23#define RANDLIB_DETAIL_SUPPRESS_DEPRECATED_END __pragma(warning(pop))
24#else
25#define RANDLIB_DETAIL_SUPPRESS_DEPRECATED_BEGIN
26#define RANDLIB_DETAIL_SUPPRESS_DEPRECATED_END
27#endif
28
29namespace randlib
30{
31
32template <typename T>
33using Pair = std::pair<T, T>;
34
35template <typename T>
36using Triplet = std::tuple<T, T, T>;
37
41
45
46class not_implemented;
47template <typename T>
49template <class T1, class T2, typename T>
51template <typename RealType = double>
53template <class T1, class T2, typename RealType>
55template <class T1, class T2, typename IntType>
57template <typename RealType = double>
59template <typename IntType = int>
60class TrinomialRand;
61template <typename T, typename P>
63template <typename T>
65template <typename RealType = double>
66class BetaPrimeRand;
67template <typename RealType = double>
69template <typename RealType = double>
70class BetaRand;
71template <typename RealType = double>
72class ArcsineRand;
73template <typename RealType = double>
75template <typename RealType = double>
76class CauchyRand;
77template <typename RealType>
79class DegenerateRand;
80template <typename RealType = double>
81class ExponentialRand;
82template <typename RealType = double>
84template <typename RealType = double>
85class FisherFRand;
86template <typename RealType = double>
87class FrechetRand;
88template <typename RealType = double>
90template <typename RealType = double>
92template <typename RealType = double>
94template <typename RealType = double>
96template <typename RealType = double>
97class GammaRand;
98template <typename RealType = double>
99class ChiSquaredRand;
100template <typename RealType = double>
101class ErlangRand;
102template <typename RealType = double>
104template <typename RealType = double>
106template <typename RealType = double>
107class GumbelRand;
108template <typename RealType = double>
109class InverseGammaRand;
110template <typename RealType = double>
112template <typename RealType = double>
113class IrwinHallRand;
114template <typename RealType = double>
116template <typename RealType = double>
118template <typename RealType = double>
120template <typename RealType = double>
122template <typename RealType = double>
124template <typename RealType = double>
125class LaplaceRand;
126template <typename RealType = double>
127class LevyRand;
128template <typename RealType = double>
129class LogNormalRand;
130template <typename RealType = double>
131class LogisticRand;
132template <typename RealType = double>
133class LogStableRand;
134template <typename RealType = double>
136template <typename RealType = double>
138template <typename RealType = double>
139class NakagamiRand;
140template <typename RealType = double>
141class ChiRand;
142template <typename RealType = double>
144template <typename RealType = double>
145class RayleighRand;
146template <typename RealType = double>
148template <typename RealType = double>
149class NoncentralTRand;
150template <typename RealType = double>
151class NormalRand;
152template <typename RealType = double>
153class ParetoRand;
154template <typename RealType = double>
155class PlanckRand;
156template <typename RealType = double>
158template <typename RealType = double>
159class RaisedCosineRand;
160template <typename RealType = double>
161class RaabGreenRand;
162template <typename RealType = double>
163class RiceRand;
164template <typename RealType = double>
165class SechRand;
166template <typename RealType = double>
168template <typename RealType = double>
169class StableRand;
170template <typename RealType = double>
171class StableCountRand;
172template <typename RealType = double>
173class HoltsmarkRand;
174template <typename RealType = double>
175class LandauRand;
176template <typename RealType = double>
177class StudentTRand;
178template <typename RealType = double>
179class TriangularRand;
180template <typename RealType = double>
181class UniformRand;
182template <typename RealType = double>
183class WeibullRand;
184template <typename RealType = double>
186template <typename RealType = double>
188template <typename RealType = double>
189class VonMisesRand;
190template <typename RealType = double>
192class BernoulliRand;
193template <typename IntType = int>
194class BetaBinomialRand;
195template <typename IntType = int>
197template <typename IntType = int>
198class BinomialRand;
199template <typename IntType = int>
200class CategoricalRand;
201template <typename IntType>
203template <typename IntType = int>
204class GeometricRand;
205template <typename IntType = int>
207template <typename IntType = int>
208class LogarithmicRand;
209template <typename IntType = int, typename T = double>
211template <typename IntType = int, typename T = double>
213template <typename IntType = int>
215template <typename IntType = int>
216class PoissonRand;
217class RademacherRand;
218template <typename IntType = int>
219class SkellamRand;
220template <typename IntType = int>
222template <typename IntType = int>
223class YuleRand;
224template <typename IntType = int>
225class ZetaRand;
226template <typename IntType = int>
227class ZipfRand;
228class CantorRand;
230
231} // namespace randlib
The ArcsineRand class Arcsine distribution.
Definition continuous/beta.hpp:340
The AsymmetricLaplaceDistribution class Abstract parent class for general Laplace and Asymmetric La...
Definition laplace.hpp:22
The AsymmetricLaplaceRand class Asymmetric Laplace distribution.
Definition laplace.hpp:118
The BaldingNicholsRand class Balding-Nichols distribution.
Definition continuous/beta.hpp:379
The BernoulliRand class Bernoulli distribution.
Definition bernoulli.hpp:25
The BetaBinomialRand class Beta-Binomial distribution.
Definition beta_binomial.hpp:25
The BetaDistribution class Abstract class for Beta distribution.
Definition continuous/beta.hpp:33
The BetaPrimeRand class Beta-prime distribution.
Definition beta_prime.hpp:32
The BetaRand class Beta distribution.
Definition continuous/beta.hpp:246
The BinomialDistribution class Abstract class for Binomial distribution.
Definition binomial.hpp:29
The BinomialRand class Binomial distribution.
Definition binomial.hpp:197
The BivariateDistribution class Abstract class for all bivariate probability distributions.
Definition bivariate.hpp:17
The BivariateNormalRand class Bivariate Gaussian (normal) distribution.
Definition bivariate_normal.hpp:21
The CantorRand class Cantor distribution.
Definition cantor.hpp:20
The CategoricalRand class
Definition categorical.hpp:25
The CauchyRand class Cauchy distribution.
Definition cauchy.hpp:26
The CenteredAsymmetricLaplaceRand class Centered Laplace distribution.
Definition laplace.hpp:66
The ChiRand class Chi distribution.
Definition nakagami.hpp:116
The ChiSquaredRand class Chi-squared distribution.
Definition continuous/gamma.hpp:355
The CircularDistribution class Abstract class for all continuous circular distributions.
Definition circular.hpp:19
The ContinuousBivariateDistribution class Abstract class for all bivariate probability distribution...
Definition continuous_bivariate.hpp:18
The ContinuousDistribution class Abstract class for all continuous distributions.
Definition continuous.hpp:22
The DegenerateRand class Degenerate distribution.
Definition degenerate.hpp:25
The DiscreteBivariateDistribution class Abstract class for all bivariate probability distributions ...
Definition discrete_bivariate.hpp:18
The DiscreteDistribution class Abstract class for all discrete distributions.
Definition discrete.hpp:21
The ErlangRand class Erlang distibution.
Definition continuous/gamma.hpp:375
Definition exponential_family.hpp:14
The ExponentialRand class Exponential distribution.
Definition exponential.hpp:28
The ExponentiallyModifiedGaussianRand class Exponentially-modified Gaussian distribution.
Definition exponentially_modified_gaussian.hpp:24
The FisherFRand class F-distribution.
Definition fisher_f.hpp:23
The FrechetRand class Frechet distribution.
Definition frechet.hpp:19
The FreeRateGammaDistribution class Abstract class for Gamma distribution with arbitrary scale/rate...
Definition continuous/gamma.hpp:252
The GammaDistribution class Abstract class for Gamma distribution.
Definition continuous/gamma.hpp:31
The GammaRand class Gamma distribution.
Definition continuous/gamma.hpp:295
The GeneralGeometricStableDistribution class Abstract class for general interface of Asymmetric Lapla...
Definition geometric_stable.hpp:19
Definition generalized_extreme_value.hpp:17
Definition generalized_pareto.hpp:16
The GeometricRand class Geometric distribution.
Definition geometric.hpp:24
The GeometricStableRand class Geometric-Stable distribution.
Definition geometric_stable.hpp:164
The GumbelRand class Gumbel distribution.
Definition gumbel.hpp:22
The HoltsmarkRand class Holtsmark distribution.
Definition stable.hpp:547
The HyperGeometricRand class Hypergeometric distribution.
Definition hypergeometric.hpp:19
The InverseGammaRand class Inverse-Gamma distribution.
Definition inverse_gamma.hpp:23
The InverseGaussianRand class Inverse Gaussian (Wald) distribution.
Definition inverse_gaussian.hpp:19
The IrwinHallRand class Irwin-Hall distribution.
Definition irwin_hall.hpp:25
The KolmogorovSmirnovRand class Kolmogorov-Smirnov distribution.
Definition kolmogorov_smirnov.hpp:19
The LandauRand class Landau distribution.
Definition stable.hpp:564
The LaplaceRand class Laplace distribution.
Definition laplace.hpp:150
The LevyRand class Levy distribution.
Definition levy.hpp:29
The LogNormalRand class Log-Normal distribution.
Definition log_normal.hpp:25
Exponential transform of a stable distribution.
Definition log_stable.hpp:25
The LogarithmicRand class Logarithmic distribution.
Definition logarithmic.hpp:21
The LogisticRand class Logistic distribution.
Definition logistic.hpp:24
The MarchenkoPasturRand class Marchenko-Pastur distribution.
Definition marchenko_pastur.hpp:20
The MaxwellBoltzmannRand class Maxwell-Boltzmann distribution.
Definition nakagami.hpp:148
The NakagamiDistribution class Abstract class for Nakagami distribution.
Definition nakagami.hpp:26
The NakagamiRand class Nakagami distribution.
Definition nakagami.hpp:96
The NegativeBinomialDistribution class Abstract class for Negative binomial distribution.
Definition negative_binomial.hpp:29
The NegativeBinomialRand class Negative binomial distribution.
Definition negative_binomial.hpp:133
The NegativeHyperGeometricRand class Negative hypergeometric distribution.
Definition negative_hypergeometric.hpp:20
The NoncentralChiSquaredRand class Noncentral Chi-Squared distribution.
Definition noncentral_chi_squared.hpp:24
Noncentral Student's t-distribution.
Definition noncentral_t.hpp:28
The NormalInverseGammaRand class Normal-inverse-gamma distribution.
Definition normal_inverse_gamma.hpp:24
The NormalRand class Normal distribution.
Definition normal.hpp:31
The ParetoRand class Pareto distribution.
Definition pareto.hpp:24
The PlanckRand class Planck distribution.
Definition planck.hpp:27
The PoissonRand class Poisson distribution.
Definition poisson.hpp:26
The ProbabilityDistribution class Abstract class for all probability distributions.
Definition distribution.hpp:28
The RaabGreenRand class Raab-Green distribution.
Definition raised_cosine.hpp:93
The RademacherRand class Rademacher distribution.
Definition rademacher.hpp:23
The RaisedCosineDistribution class Abstract class for Raised-cosine distribution.
Definition raised_cosine.hpp:19
The RaisedCosineRand class Raised-cosine distribution.
Definition raised_cosine.hpp:70
The RayleighRand class Rayleigh distribution.
Definition nakagami.hpp:191
Rice distribution.
Definition rice.hpp:22
The SechRand class Hyperbolic secant distribution.
Definition sech.hpp:19
The ShiftedAsymmetricLaplaceDistribution class Abstract parent class for shifted Laplace and Asymme...
Definition laplace.hpp:91
The SingularDistribution class Abstract class for all singular distributions.
Definition singular.hpp:18
The SkellamRand class Skellam distribution.
Definition skellam.hpp:22
Stable Count distribution.
Definition stable_count.hpp:39
The StableDistribution class Abstract class for Stable distribution.
Definition stable.hpp:74
The StableRand class Stable distribution.
Definition stable.hpp:521
The StudentTRand class Student's t-distribution.
Definition student_t.hpp:22
The TriangularRand class Triangular distribution.
Definition triangular.hpp:19
The TrinomialRand class Trinomial distribution.
Definition trinomial.hpp:25
The UniformDiscreteRand class Uniform discrete distribution.
Definition uniform_discrete.hpp:23
The UniformRand class Uniform continuous distribution.
Definition continuous/uniform.hpp:30
The UnivariateDistribution class Abstract class for all univariate probability distributions.
Definition univariate.hpp:28
The VonMisesRand class Von-Mises distribution.
Definition von_mises.hpp:19
The WeibullRand class Weibull distribution.
Definition weibull.hpp:21
The WignerSemicircleRand class Wigner-Semicircle distribution.
Definition wigner_semicircle.hpp:23
The WrappedExponentialRand class Wrapped Exponential distribution.
Definition wrapped_exponential.hpp:19
The YuleRand class Yule distribution.
Definition yule.hpp:23
The ZetaRand class Zeta distribution.
Definition zeta.hpp:21
The ZipfRand class Zipf distribution.
Definition zipf.hpp:19
The not_implemented class Thrown when a quantity is not yet available for the given parameters,...
Definition errors.hpp:15
Definition bivariate_normal.hpp:10
std::pair< T, T > Pair
Definition fwd.hpp:33
std::tuple< T, T, T > Triplet
Definition fwd.hpp:36
Pair< double > DoublePair
Definition fwd.hpp:39
Pair< int > IntPair
Definition fwd.hpp:38
Triplet< int > IntTriplet
Definition fwd.hpp:42
Triplet< long double > LongDoubleTriplet
Definition fwd.hpp:44
Triplet< double > DoubleTriplet
Definition fwd.hpp:43
Pair< long double > LongDoublePair
Definition fwd.hpp:40