RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
randlib::UnivariateDistribution< T > Class Template Referenceabstract

The UnivariateDistribution class
Abstract class for all univariate probability distributions. More...

#include <univariate.hpp>

Inheritance diagram for randlib::UnivariateDistribution< T >:
Collaboration diagram for randlib::UnivariateDistribution< T >:

Public Member Functions

virtual ~UnivariateDistribution ()
 
virtual Support SupportType () const =0
 
bool isLeftBounded () const
 
bool isRightBounded () const
 
virtual long double Mean () const =0
 
virtual long double Variance () const =0
 
T Quantile (double p) const
 
T Quantile1m (double p) const
 
void QuantileFunction (std::span< const double > p, std::span< T > y) const
 
void QuantileFunction1m (std::span< const double > p, std::span< T > y) const
 
std::complex< double > CF (double t) const
 
void CharacteristicFunction (std::span< const double > t, std::span< std::complex< double > > y) const
 
virtual double Hazard (const T &x) const =0
 
void HazardFunction (std::span< const T > x, std::span< double > y) const
 
virtual T Median () const
 
virtual T Mode () const =0
 Mode is the value, which has the largest probability to happen, or, in the case of continuous distribution, has the largest value of density function.
 
virtual long double Skewness () const
 
virtual long double Kurtosis () const
 
virtual long double ExcessKurtosis () const
 
virtual long double SecondMoment () const
 
virtual long double ThirdMoment () const
 
virtual long double FourthMoment () const
 
virtual double LikelihoodFunction (std::span< const T > sample) const =0
 
virtual double LogLikelihoodFunction (std::span< const T > sample) const =0
 
- Public Member Functions inherited from randlib::ProbabilityDistribution< T >
virtual ~ProbabilityDistribution ()=default
 
virtual std::string Name () const =0
 
virtual T MinValue () const =0
 
virtual T MaxValue () const =0
 
virtual double F (const T &x) const =0
 
void CumulativeDistributionFunction (std::span< const T > x, std::span< double > y) const
 
virtual double S (const T &x) const
 
void SurvivalFunction (std::span< const T > x, std::span< double > y) const
 
template<std::uniform_random_bit_generator G>
T operator() (G &g) const
 Draws a variate with the given engine through the virtual interface.
 
T Variate () const
 Uses the engine of this object, so it is not thread-safe for one object; use operator() with one engine per thread instead.
 
void Sample (std::span< T > outputData) const
 Fills the output with variates drawn with the engine of this object.
 
template<std::uniform_random_bit_generator G>
void Sample (G &g, std::span< T > outputData) const
 Fills the output with variates drawn with the given engine.
 
void Reseed (std::uint64_t seed)
 

Static Public Member Functions

static long double GetSampleSum (std::span< const T > sample)
 
static long double GetSampleMean (std::span< const T > sample)
 
static long double GetSampleLogMean (std::span< const T > sample)
 
static long double GetSampleVariance (std::span< const T > sample, double mean)
 
static long double GetSampleLogVariance (std::span< const T > sample, double logMean)
 
static LongDoublePair GetSampleMeanAndVariance (std::span< const T > sample)
 
static LongDoublePair GetSampleLogMeanAndVariance (std::span< const T > sample)
 
static std::tuple< long double, long double, long double, long double > GetSampleStatistics (std::span< const T > sample)
 

Protected Member Functions

 UnivariateDistribution ()
 
virtual std::complex< double > CFImpl (double t) const
 
virtual long double ExpectedValue (const std::function< double(T)> &funPtr, T minPoint, T maxPoint) const =0
 
- Protected Member Functions inherited from randlib::ProbabilityDistribution< T >
std::string toStringWithPrecision (const double a_value, const int n=6) const
 
 ProbabilityDistribution ()=default
 
DefaultEngine & engine () const
 
virtual T variate (detail::EngineRef g) const =0
 Every concrete distribution implements this by calling its templated operator()
 
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.
 
fit_error fitError (FitErrorCode code, const std::string &explanation) const
 

Static Protected Member Functions

static bool allElementsAreNotGreaterThan (T value, std::span< const T > sample)
 
static bool allElementsAreNotSmallerThan (T value, std::span< const T > sample)
 
static bool allElementsAreNonNegative (std::span< const T > sample)
 
static bool allElementsArePositive (std::span< const T > sample)
 

Additional Inherited Members

- Public Types inherited from randlib::ProbabilityDistribution< T >
using value_type = T
 
- Static Protected Attributes inherited from randlib::ProbabilityDistribution< T >
static constexpr size_t MAX_ITER_REJECTION = detail::MAX_ITER_REJECTION
 MAX_ITER_REJECTION upper boundary for maximum amount of iterations in rejection methods one thousand should be enough to be sure there is a bug (or rejection method is too slow to be used)
 
static constexpr char POSITIVITY_VIOLATION [] = "All elements should be positive"
 
static constexpr char NON_NEGATIVITY_VIOLATION [] = "All elements should be non-negative"
 
static constexpr char UPPER_LIMIT_VIOLATION [] = "No element should be greater than "
 
static constexpr char LOWER_LIMIT_VIOLATION [] = "No element should be smaller than "
 

Detailed Description

template<typename T>
class randlib::UnivariateDistribution< T >

The UnivariateDistribution class
Abstract class for all univariate probability distributions.

Constructor & Destructor Documentation

◆ UnivariateDistribution()

template<typename T >
randlib::UnivariateDistribution< T >::UnivariateDistribution ( )
protected

◆ ~UnivariateDistribution()

template<typename T >
virtual randlib::UnivariateDistribution< T >::~UnivariateDistribution ( )
inlinevirtual

Member Function Documentation

◆ allElementsAreNonNegative()

template<typename T >
bool randlib::UnivariateDistribution< T >::allElementsAreNonNegative ( std::span< const T >  sample)
staticprotected
Parameters
sample
Returns
true if all elements in sample are non-negative

◆ allElementsAreNotGreaterThan()

template<typename T >
bool randlib::UnivariateDistribution< T >::allElementsAreNotGreaterThan ( T  value,
std::span< const T >  sample 
)
staticprotected
Parameters
value
sample
Returns
true if all elements in sample are not greater than given value

◆ allElementsAreNotSmallerThan()

template<typename T >
bool randlib::UnivariateDistribution< T >::allElementsAreNotSmallerThan ( T  value,
std::span< const T >  sample 
)
staticprotected
Parameters
value
sample
Returns
true if all elements in sample are not smaller than given value

◆ allElementsArePositive()

template<typename T >
bool randlib::UnivariateDistribution< T >::allElementsArePositive ( std::span< const T >  sample)
staticprotected
Parameters
sample
Returns
true if all elements in sample are positive

◆ CF()

template<typename T >
std::complex< double > randlib::UnivariateDistribution< T >::CF ( double  t) const
Parameters
t
Returns
CFImpl for t != 0 and 1 otherwise

◆ CFImpl()

◆ CharacteristicFunction()

template<typename T >
void randlib::UnivariateDistribution< T >::CharacteristicFunction ( std::span< const double >  t,
std::span< std::complex< double > >  y 
) const
Parameters
tinput vector
youtput vector: y = CF(t)

◆ ExcessKurtosis()

template<typename T >
long double randlib::UnivariateDistribution< T >::ExcessKurtosis ( ) const
virtual
Returns
E[((X - μ) / σ) ^ 4] - 3 (fourth moment around the mean divided by the square of the variance of the probability distribution minus 3)

var is finite, so is mu

Reimplemented in randlib::BetaDistribution< RealType >, randlib::BetaDistribution< double >, randlib::BetaPrimeRand< RealType >, randlib::DegenerateRand, randlib::ExponentiallyModifiedGaussianRand< RealType >, randlib::FisherFRand< RealType >, randlib::FrechetRand< RealType >, randlib::GammaDistribution< RealType >, randlib::GammaDistribution< double >, randlib::GammaDistribution< float >, randlib::GeneralizedExtremeValueRand< RealType >, randlib::GeneralizedParetoRand< RealType >, randlib::GeneralGeometricStableDistribution< RealType >, randlib::GumbelRand< RealType >, randlib::InverseGammaRand< RealType >, randlib::InverseGaussianRand< RealType >, randlib::IrwinHallRand< RealType >, randlib::LogNormalRand< RealType >, randlib::LogStableRand< RealType >, randlib::LogisticRand< RealType >, randlib::MarchenkoPasturRand< RealType >, randlib::NakagamiDistribution< RealType >, randlib::ChiRand< RealType >, randlib::MaxwellBoltzmannRand< RealType >, randlib::RayleighRand< RealType >, randlib::NoncentralChiSquaredRand< RealType >, randlib::NoncentralTRand< RealType >, randlib::ParetoRand< RealType >, randlib::ParetoRand< double >, randlib::PlanckRand< RealType >, randlib::RaisedCosineDistribution< RealType >, randlib::SechRand< RealType >, randlib::StableDistribution< RealType >, randlib::StableCountRand< RealType >, randlib::StudentTRand< RealType >, randlib::TriangularRand< RealType >, randlib::UniformRand< RealType >, randlib::WeibullRand< RealType >, randlib::WignerSemicircleRand< RealType >, randlib::CircularDistribution< RealType >, randlib::BetaBinomialRand< IntType >, randlib::BinomialDistribution< IntType >, randlib::BinomialDistribution< int >, randlib::HyperGeometricRand< IntType >, randlib::NegativeBinomialDistribution< IntType, T >, randlib::PoissonRand< IntType >, randlib::PoissonRand< int >, randlib::RademacherRand, randlib::SkellamRand< IntType >, randlib::UniformDiscreteRand< IntType >, randlib::YuleRand< IntType >, randlib::ZetaRand< IntType >, randlib::ZetaRand< long long int >, randlib::ZipfRand< IntType >, and randlib::CantorRand.

◆ ExpectedValue()

template<typename T >
virtual long double randlib::UnivariateDistribution< T >::ExpectedValue ( const std::function< double(T)> &  funPtr,
T  minPoint,
T  maxPoint 
) const
protectedpure virtual
Parameters
funPtrpointer on function g(x) with finite support which expected value should be returned
minPointmin{x | g(x) ≠ 0}
maxPointmax{x | g(x) ≠ 0}
Returns
E[g(x)]

Implemented in randlib::DiscreteDistribution< IntType >, and randlib::ContinuousDistribution< RealType >.

◆ FourthMoment()

◆ GetSampleLogMean()

template<typename T >
long double randlib::UnivariateDistribution< T >::GetSampleLogMean ( std::span< const T >  sample)
static
Parameters
sample
Returns
arithmetic log-average

◆ GetSampleLogMeanAndVariance()

template<typename T >
LongDoublePair randlib::UnivariateDistribution< T >::GetSampleLogMeanAndVariance ( std::span< const T >  sample)
static
Parameters
sample
Returns
sample log-mean and log-variance

Welford's stable method

◆ GetSampleLogVariance()

template<typename T >
long double randlib::UnivariateDistribution< T >::GetSampleLogVariance ( std::span< const T >  sample,
double  logMean 
)
static
Parameters
sample
logMeanknown log-mean value
Returns
sample log-variance

◆ GetSampleMean()

template<typename T >
long double randlib::UnivariateDistribution< T >::GetSampleMean ( std::span< const T >  sample)
static
Parameters
sample
Returns
arithmetic average

◆ GetSampleMeanAndVariance()

template<typename T >
LongDoublePair randlib::UnivariateDistribution< T >::GetSampleMeanAndVariance ( std::span< const T >  sample)
static
Parameters
sample
Returns
sample mean and variance

Welford's stable method

◆ GetSampleStatistics()

template<typename T >
std::tuple< long double, long double, long double, long double > randlib::UnivariateDistribution< T >::GetSampleStatistics ( std::span< const T >  sample)
static
Parameters
sample
Returns
sample mean, variance, skewness and excess kurtosis

Terriberry's extension for skewness and kurtosis

This looks like a hack and unfortunately it is. The reason of it is that the algorithm can become unstable for sufficiently large k. For now we restart the algorithm when k reaches some big number. In the future this can be parallelized for faster implementation.

M4

M3

M2 and M1

If something left - add the residue

M4

M3

M2 and M1

◆ GetSampleSum()

template<typename T >
long double randlib::UnivariateDistribution< T >::GetSampleSum ( std::span< const T >  sample)
static
Parameters
sample
Returns
sum of all elements in a sample

◆ GetSampleVariance()

template<typename T >
long double randlib::UnivariateDistribution< T >::GetSampleVariance ( std::span< const T >  sample,
double  mean 
)
static
Parameters
sample
meanknown mean value
Returns
sample second central moment

◆ Hazard()

template<typename T >
virtual double randlib::UnivariateDistribution< T >::Hazard ( const T &  x) const
pure virtual
Parameters
xinput parameter
Returns
hazard function

Implemented in randlib::DiscreteDistribution< IntType >, and randlib::ContinuousDistribution< RealType >.

◆ HazardFunction()

template<typename T >
void randlib::UnivariateDistribution< T >::HazardFunction ( std::span< const T >  x,
std::span< double >  y 
) const
Parameters
xinput vector
youtput vector: y = Hazard(x)

◆ isLeftBounded()

template<typename T >
bool randlib::UnivariateDistribution< T >::isLeftBounded ( ) const
Returns
true if distribution is bounded from the left

◆ isRightBounded()

template<typename T >
bool randlib::UnivariateDistribution< T >::isRightBounded ( ) const
Returns
true if distribution is bounded from the right

◆ Kurtosis()

template<typename T >
long double randlib::UnivariateDistribution< T >::Kurtosis ( ) const
virtual
Returns
unbiased kurtosis = μ_4 / σ ^ 4

◆ LikelihoodFunction()

template<typename T >
virtual double randlib::UnivariateDistribution< T >::LikelihoodFunction ( std::span< const T >  sample) const
pure virtual

◆ LogLikelihoodFunction()

template<typename T >
virtual double randlib::UnivariateDistribution< T >::LogLikelihoodFunction ( std::span< const T >  sample) const
pure virtual
Parameters
sample
Returns
logarithm of likelihood function for given sample

Implemented in randlib::DiscreteDistribution< IntType >, randlib::UniformDiscreteRand< IntType >, randlib::UniformRand< RealType >, and randlib::ContinuousDistribution< RealType >.

◆ Mean()

template<typename T >
virtual long double randlib::UnivariateDistribution< T >::Mean ( ) const
pure virtual
Returns
Mathematical expectation

Implemented in randlib::BetaDistribution< RealType >, randlib::BetaDistribution< double >, randlib::BetaPrimeRand< RealType >, randlib::DegenerateRand, randlib::ExponentiallyModifiedGaussianRand< RealType >, randlib::FisherFRand< RealType >, randlib::FrechetRand< RealType >, randlib::GammaDistribution< RealType >, randlib::GammaDistribution< double >, randlib::GammaDistribution< float >, randlib::GeneralizedExtremeValueRand< RealType >, randlib::GeneralizedParetoRand< RealType >, randlib::GeneralGeometricStableDistribution< RealType >, randlib::GumbelRand< RealType >, randlib::InverseGammaRand< RealType >, randlib::InverseGaussianRand< RealType >, randlib::IrwinHallRand< RealType >, randlib::KolmogorovSmirnovRand< RealType >, randlib::LogNormalRand< RealType >, randlib::LogStableRand< RealType >, randlib::LogisticRand< RealType >, randlib::MarchenkoPasturRand< RealType >, randlib::NakagamiDistribution< RealType >, randlib::MaxwellBoltzmannRand< RealType >, randlib::RayleighRand< RealType >, randlib::NoncentralChiSquaredRand< RealType >, randlib::NoncentralTRand< RealType >, randlib::ParetoRand< RealType >, randlib::ParetoRand< double >, randlib::PlanckRand< RealType >, randlib::RaisedCosineDistribution< RealType >, randlib::RiceRand< RealType >, randlib::SechRand< RealType >, randlib::StableDistribution< RealType >, randlib::StableCountRand< RealType >, randlib::StudentTRand< RealType >, randlib::TriangularRand< RealType >, randlib::UniformRand< RealType >, randlib::WeibullRand< RealType >, randlib::WignerSemicircleRand< RealType >, randlib::CircularDistribution< RealType >, randlib::BetaBinomialRand< IntType >, randlib::BinomialDistribution< IntType >, randlib::BinomialDistribution< int >, randlib::CategoricalRand< IntType >, randlib::HyperGeometricRand< IntType >, randlib::LogarithmicRand< IntType >, randlib::NegativeBinomialDistribution< IntType, T >, randlib::NegativeHyperGeometricRand< IntType >, randlib::PoissonRand< IntType >, randlib::PoissonRand< int >, randlib::RademacherRand, randlib::SkellamRand< IntType >, randlib::UniformDiscreteRand< IntType >, randlib::YuleRand< IntType >, randlib::ZetaRand< IntType >, randlib::ZetaRand< long long int >, randlib::ZipfRand< IntType >, and randlib::CantorRand.

◆ Median()

template<typename T >
T randlib::UnivariateDistribution< T >::Median ( ) const
virtual
Returns
such x that F(x) = 0.5

Reimplemented in randlib::VonMisesRand< RealType >, randlib::WrappedExponentialRand< RealType >, randlib::BetaDistribution< RealType >, randlib::BetaDistribution< double >, randlib::BetaPrimeRand< RealType >, randlib::DegenerateRand, randlib::FisherFRand< RealType >, randlib::FrechetRand< RealType >, randlib::GammaDistribution< RealType >, randlib::GammaDistribution< double >, randlib::GammaDistribution< float >, randlib::GeneralizedExtremeValueRand< RealType >, randlib::GeneralizedParetoRand< RealType >, randlib::GeneralGeometricStableDistribution< RealType >, randlib::GumbelRand< RealType >, randlib::InverseGammaRand< RealType >, randlib::IrwinHallRand< RealType >, randlib::KolmogorovSmirnovRand< RealType >, randlib::LogNormalRand< RealType >, randlib::LogStableRand< RealType >, randlib::LogisticRand< RealType >, randlib::NakagamiDistribution< RealType >, randlib::RayleighRand< RealType >, randlib::ParetoRand< RealType >, randlib::ParetoRand< double >, randlib::RaisedCosineDistribution< RealType >, randlib::SechRand< RealType >, randlib::StableDistribution< RealType >, randlib::StudentTRand< RealType >, randlib::TriangularRand< RealType >, randlib::UniformRand< RealType >, randlib::WeibullRand< RealType >, randlib::WignerSemicircleRand< RealType >, randlib::BinomialDistribution< IntType >, randlib::BinomialDistribution< int >, randlib::GeometricRand< IntType >, randlib::GeometricRand< int >, randlib::PoissonRand< IntType >, randlib::PoissonRand< int >, randlib::RademacherRand, randlib::SkellamRand< IntType >, randlib::UniformDiscreteRand< IntType >, and randlib::CantorRand.

◆ Mode()

template<typename T >
virtual T randlib::UnivariateDistribution< T >::Mode ( ) const
pure virtual

Mode is the value, which has the largest probability to happen, or, in the case of continuous distribution, has the largest value of density function.

Returns
mode. In case, when it's not unique, return any of them.

Implemented in randlib::VonMisesRand< RealType >, randlib::WrappedExponentialRand< RealType >, randlib::BetaDistribution< RealType >, randlib::BetaDistribution< double >, randlib::BetaPrimeRand< RealType >, randlib::DegenerateRand, randlib::FisherFRand< RealType >, randlib::FrechetRand< RealType >, randlib::GammaDistribution< RealType >, randlib::GammaDistribution< double >, randlib::GammaDistribution< float >, randlib::GeneralizedExtremeValueRand< RealType >, randlib::GeneralizedParetoRand< RealType >, randlib::GeneralGeometricStableDistribution< RealType >, randlib::GumbelRand< RealType >, randlib::InverseGammaRand< RealType >, randlib::InverseGaussianRand< RealType >, randlib::IrwinHallRand< RealType >, randlib::KolmogorovSmirnovRand< RealType >, randlib::LogNormalRand< RealType >, randlib::LogStableRand< RealType >, randlib::LogisticRand< RealType >, randlib::MarchenkoPasturRand< RealType >, randlib::NakagamiDistribution< RealType >, randlib::MaxwellBoltzmannRand< RealType >, randlib::RayleighRand< RealType >, randlib::NoncentralChiSquaredRand< RealType >, randlib::ParetoRand< RealType >, randlib::ParetoRand< double >, randlib::PlanckRand< RealType >, randlib::RaisedCosineDistribution< RealType >, randlib::RiceRand< RealType >, randlib::SechRand< RealType >, randlib::StableDistribution< RealType >, randlib::StableCountRand< RealType >, randlib::StudentTRand< RealType >, randlib::TriangularRand< RealType >, randlib::UniformRand< RealType >, randlib::WeibullRand< RealType >, randlib::WignerSemicircleRand< RealType >, randlib::ContinuousDistribution< RealType >, randlib::ContinuousDistribution< double >, randlib::ContinuousDistribution< float >, randlib::DiscreteDistribution< IntType >, randlib::DiscreteDistribution< int >, randlib::DiscreteDistribution< long long int >, randlib::BetaBinomialRand< IntType >, randlib::BinomialDistribution< IntType >, randlib::BinomialDistribution< int >, randlib::CategoricalRand< IntType >, randlib::HyperGeometricRand< IntType >, randlib::LogarithmicRand< IntType >, randlib::NegativeBinomialDistribution< IntType, T >, randlib::PoissonRand< IntType >, randlib::PoissonRand< int >, randlib::RademacherRand, randlib::SkellamRand< IntType >, randlib::UniformDiscreteRand< IntType >, randlib::YuleRand< IntType >, randlib::ZetaRand< IntType >, randlib::ZetaRand< long long int >, and randlib::ZipfRand< IntType >.

◆ Quantile()

template<typename T >
T randlib::UnivariateDistribution< T >::Quantile ( double  p) const
Parameters
p
Returns
quantileImpl(p) if p is in (0, 1)

◆ Quantile1m()

template<typename T >
T randlib::UnivariateDistribution< T >::Quantile1m ( double  p) const
Parameters
p
Returns
quantileImpl1m(p) if p is in (0, 1)

◆ QuantileFunction()

template<typename T >
void randlib::UnivariateDistribution< T >::QuantileFunction ( std::span< const double >  p,
std::span< T >  y 
) const
Parameters
p
yFills vector y with Quantile(p)

◆ QuantileFunction1m()

template<typename T >
void randlib::UnivariateDistribution< T >::QuantileFunction1m ( std::span< const double >  p,
std::span< T >  y 
) const
Parameters
p
yFills vector y with Quantile1m(p)

◆ SecondMoment()

template<typename T >
long double randlib::UnivariateDistribution< T >::SecondMoment ( ) const
virtual

◆ Skewness()

template<typename T >
long double randlib::UnivariateDistribution< T >::Skewness ( ) const
virtual
Returns
E[((X - μ) / σ) ^ 3] where μ is central moment and σ is standard deviation

var is finite, so is mu

Reimplemented in randlib::BetaDistribution< RealType >, randlib::BetaDistribution< double >, randlib::BetaPrimeRand< RealType >, randlib::DegenerateRand, randlib::ExponentiallyModifiedGaussianRand< RealType >, randlib::FisherFRand< RealType >, randlib::FrechetRand< RealType >, randlib::GammaDistribution< RealType >, randlib::GammaDistribution< double >, randlib::GammaDistribution< float >, randlib::GeneralizedExtremeValueRand< RealType >, randlib::GeneralizedParetoRand< RealType >, randlib::GeneralGeometricStableDistribution< RealType >, randlib::GumbelRand< RealType >, randlib::InverseGammaRand< RealType >, randlib::InverseGaussianRand< RealType >, randlib::IrwinHallRand< RealType >, randlib::LogNormalRand< RealType >, randlib::LogStableRand< RealType >, randlib::LogisticRand< RealType >, randlib::MarchenkoPasturRand< RealType >, randlib::NakagamiDistribution< RealType >, randlib::ChiRand< RealType >, randlib::MaxwellBoltzmannRand< RealType >, randlib::RayleighRand< RealType >, randlib::NoncentralChiSquaredRand< RealType >, randlib::NoncentralTRand< RealType >, randlib::ParetoRand< RealType >, randlib::ParetoRand< double >, randlib::PlanckRand< RealType >, randlib::RaisedCosineDistribution< RealType >, randlib::SechRand< RealType >, randlib::StableDistribution< RealType >, randlib::StableCountRand< RealType >, randlib::StudentTRand< RealType >, randlib::TriangularRand< RealType >, randlib::UniformRand< RealType >, randlib::WeibullRand< RealType >, randlib::WignerSemicircleRand< RealType >, randlib::CircularDistribution< RealType >, randlib::BetaBinomialRand< IntType >, randlib::BinomialDistribution< IntType >, randlib::BinomialDistribution< int >, randlib::HyperGeometricRand< IntType >, randlib::NegativeBinomialDistribution< IntType, T >, randlib::PoissonRand< IntType >, randlib::PoissonRand< int >, randlib::RademacherRand, randlib::SkellamRand< IntType >, randlib::UniformDiscreteRand< IntType >, randlib::YuleRand< IntType >, randlib::ZetaRand< IntType >, randlib::ZetaRand< long long int >, randlib::ZipfRand< IntType >, and randlib::CantorRand.

◆ SupportType()

template<typename T >
virtual Support randlib::UnivariateDistribution< T >::SupportType ( ) const
pure virtual
Returns
type of support

Implemented in randlib::BetaDistribution< RealType >, randlib::BetaDistribution< double >, randlib::BetaPrimeRand< RealType >, randlib::CauchyRand< RealType >, randlib::DegenerateRand, randlib::ExponentiallyModifiedGaussianRand< RealType >, randlib::FisherFRand< RealType >, randlib::FrechetRand< RealType >, randlib::GammaDistribution< RealType >, randlib::GammaDistribution< double >, randlib::GammaDistribution< float >, randlib::GeneralizedExtremeValueRand< RealType >, randlib::GeneralizedParetoRand< RealType >, randlib::GeneralGeometricStableDistribution< RealType >, randlib::GumbelRand< RealType >, randlib::InverseGammaRand< RealType >, randlib::InverseGaussianRand< RealType >, randlib::IrwinHallRand< RealType >, randlib::KolmogorovSmirnovRand< RealType >, randlib::LogNormalRand< RealType >, randlib::LogStableRand< RealType >, randlib::LogisticRand< RealType >, randlib::MarchenkoPasturRand< RealType >, randlib::NakagamiDistribution< RealType >, randlib::NoncentralChiSquaredRand< RealType >, randlib::NoncentralTRand< RealType >, randlib::ParetoRand< RealType >, randlib::ParetoRand< double >, randlib::PlanckRand< RealType >, randlib::RaisedCosineDistribution< RealType >, randlib::RiceRand< RealType >, randlib::SechRand< RealType >, randlib::StableDistribution< RealType >, randlib::StableCountRand< RealType >, randlib::StudentTRand< RealType >, randlib::TriangularRand< RealType >, randlib::UniformRand< RealType >, randlib::WeibullRand< RealType >, randlib::WignerSemicircleRand< RealType >, randlib::CircularDistribution< RealType >, randlib::BetaBinomialRand< IntType >, randlib::BinomialDistribution< IntType >, randlib::BinomialDistribution< int >, randlib::CategoricalRand< IntType >, randlib::HyperGeometricRand< IntType >, randlib::LogarithmicRand< IntType >, randlib::NegativeBinomialDistribution< IntType, T >, randlib::NegativeHyperGeometricRand< IntType >, randlib::PoissonRand< IntType >, randlib::PoissonRand< int >, randlib::RademacherRand, randlib::SkellamRand< IntType >, randlib::UniformDiscreteRand< IntType >, randlib::YuleRand< IntType >, randlib::ZetaRand< IntType >, randlib::ZetaRand< long long int >, randlib::ZipfRand< IntType >, and randlib::CantorRand.

◆ ThirdMoment()

◆ Variance()

template<typename T >
virtual long double randlib::UnivariateDistribution< T >::Variance ( ) const
pure virtual
Returns
Variance of random variable

Implemented in randlib::BetaDistribution< RealType >, randlib::BetaDistribution< double >, randlib::BetaPrimeRand< RealType >, randlib::DegenerateRand, randlib::ExponentiallyModifiedGaussianRand< RealType >, randlib::FisherFRand< RealType >, randlib::FrechetRand< RealType >, randlib::GammaDistribution< RealType >, randlib::GammaDistribution< double >, randlib::GammaDistribution< float >, randlib::GeneralizedExtremeValueRand< RealType >, randlib::GeneralizedParetoRand< RealType >, randlib::GeneralGeometricStableDistribution< RealType >, randlib::GumbelRand< RealType >, randlib::InverseGammaRand< RealType >, randlib::InverseGaussianRand< RealType >, randlib::IrwinHallRand< RealType >, randlib::KolmogorovSmirnovRand< RealType >, randlib::LogNormalRand< RealType >, randlib::LogStableRand< RealType >, randlib::LogisticRand< RealType >, randlib::MarchenkoPasturRand< RealType >, randlib::NakagamiDistribution< RealType >, randlib::MaxwellBoltzmannRand< RealType >, randlib::RayleighRand< RealType >, randlib::NoncentralChiSquaredRand< RealType >, randlib::NoncentralTRand< RealType >, randlib::ParetoRand< RealType >, randlib::ParetoRand< double >, randlib::PlanckRand< RealType >, randlib::RaisedCosineDistribution< RealType >, randlib::RiceRand< RealType >, randlib::SechRand< RealType >, randlib::StableDistribution< RealType >, randlib::StableCountRand< RealType >, randlib::StudentTRand< RealType >, randlib::TriangularRand< RealType >, randlib::UniformRand< RealType >, randlib::WeibullRand< RealType >, randlib::WignerSemicircleRand< RealType >, randlib::CircularDistribution< RealType >, randlib::BetaBinomialRand< IntType >, randlib::BinomialDistribution< IntType >, randlib::BinomialDistribution< int >, randlib::CategoricalRand< IntType >, randlib::HyperGeometricRand< IntType >, randlib::LogarithmicRand< IntType >, randlib::NegativeBinomialDistribution< IntType, T >, randlib::NegativeHyperGeometricRand< IntType >, randlib::PoissonRand< IntType >, randlib::PoissonRand< int >, randlib::RademacherRand, randlib::SkellamRand< IntType >, randlib::UniformDiscreteRand< IntType >, randlib::YuleRand< IntType >, randlib::ZetaRand< IntType >, randlib::ZetaRand< long long int >, randlib::ZipfRand< IntType >, and randlib::CantorRand.


The documentation for this class was generated from the following files: