RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
randlib::CantorRand Class Referencefinal

The CantorRand class
Cantor distribution. More...

#include <cantor.hpp>

Inheritance diagram for randlib::CantorRand:
Collaboration diagram for randlib::CantorRand:

Public Member Functions

 CantorRand ()
 
std::string Name () const override
 
Support SupportType () const override
 
double MinValue () const override
 
double MaxValue () const override
 
double F (const double &x) const override
 
template<std::uniform_random_bit_generator G>
double operator() (G &g) const
 
long double Mean () const override
 
long double Variance () const override
 
double Median () const override
 
long double Skewness () const override
 
long double ExcessKurtosis () const override
 
- Public Member Functions inherited from randlib::SingularDistribution
virtual ~SingularDistribution ()
 
- Public Member Functions inherited from randlib::UnivariateDistribution< double >
virtual ~UnivariateDistribution ()
 
bool isLeftBounded () const
 
bool isRightBounded () const
 
double Quantile (double p) const
 
double Quantile1m (double p) const
 
void QuantileFunction (std::span< const double > p, std::span< double > y) const
 
void QuantileFunction1m (std::span< const double > p, std::span< double > y) const
 
std::complex< double > CF (double t) const
 
void CharacteristicFunction (std::span< const double > t, std::span< std::complex< double > > y) const
 
void HazardFunction (std::span< const double > x, std::span< double > y) const
 
virtual long double Kurtosis () const
 
virtual long double SecondMoment () const
 
virtual long double ThirdMoment () const
 
virtual long double FourthMoment () const
 
- Public Member Functions inherited from randlib::ProbabilityDistribution< T >
virtual ~ProbabilityDistribution ()=default
 
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)
 

Additional Inherited Members

- Public Types inherited from randlib::ProbabilityDistribution< T >
using value_type = T
 
- Static Public Member Functions inherited from randlib::UnivariateDistribution< double >
static long double GetSampleSum (std::span< const double > sample)
 
static long double GetSampleMean (std::span< const double > sample)
 
static long double GetSampleLogMean (std::span< const double > sample)
 
static long double GetSampleVariance (std::span< const double > sample, double mean)
 
static long double GetSampleLogVariance (std::span< const double > sample, double logMean)
 
static LongDoublePair GetSampleMeanAndVariance (std::span< const double > sample)
 
static LongDoublePair GetSampleLogMeanAndVariance (std::span< const double > sample)
 
static std::tuple< long double, long double, long double, long double > GetSampleStatistics (std::span< const double > sample)
 
- Protected Member Functions inherited from randlib::SingularDistribution
 SingularDistribution ()
 
- Protected Member Functions inherited from randlib::UnivariateDistribution< double >
 UnivariateDistribution ()
 
- 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 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 inherited from randlib::UnivariateDistribution< double >
static bool allElementsAreNotGreaterThan (double value, std::span< const double > sample)
 
static bool allElementsAreNotSmallerThan (double value, std::span< const double > sample)
 
static bool allElementsAreNonNegative (std::span< const double > sample)
 
static bool allElementsArePositive (std::span< const double > sample)
 
- 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

The CantorRand class
Cantor distribution.

Notation X ~ Cantor()

Constructor & Destructor Documentation

◆ CantorRand()

randlib::CantorRand::CantorRand ( )
inline

Member Function Documentation

◆ ExcessKurtosis()

long double randlib::CantorRand::ExcessKurtosis ( ) const
inlineoverridevirtual
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 from randlib::UnivariateDistribution< double >.

◆ F()

double randlib::CantorRand::F ( const double &  x) const
inlineoverride

◆ MaxValue()

double randlib::CantorRand::MaxValue ( ) const
inlineoverridevirtual
Returns
maximum possible value that can be achieved by random variable

Implements randlib::ProbabilityDistribution< T >.

◆ Mean()

long double randlib::CantorRand::Mean ( ) const
inlineoverridevirtual
Returns
Mathematical expectation

Implements randlib::UnivariateDistribution< double >.

◆ Median()

double randlib::CantorRand::Median ( ) const
inlineoverridevirtual
Returns
such x that F(x) = 0.5

Reimplemented from randlib::UnivariateDistribution< double >.

◆ MinValue()

double randlib::CantorRand::MinValue ( ) const
inlineoverridevirtual
Returns
minimum possible value that can be achieved by random variable

Implements randlib::ProbabilityDistribution< T >.

◆ Name()

std::string randlib::CantorRand::Name ( ) const
inlineoverridevirtual
Returns
title of distribution, for instance "Normal(0, 1)"

Implements randlib::ProbabilityDistribution< T >.

◆ operator()()

template<std::uniform_random_bit_generator G>
double randlib::CantorRand::operator() ( G &  g) const

◆ Skewness()

long double randlib::CantorRand::Skewness ( ) const
inlineoverridevirtual
Returns
E[((X - μ) / σ) ^ 3] where μ is central moment and σ is standard deviation

var is finite, so is mu

Reimplemented from randlib::UnivariateDistribution< double >.

◆ SupportType()

Support randlib::CantorRand::SupportType ( ) const
inlineoverridevirtual
Returns
type of support

Implements randlib::UnivariateDistribution< double >.

◆ Variance()

long double randlib::CantorRand::Variance ( ) const
inlineoverridevirtual
Returns
Variance of random variable

Implements randlib::UnivariateDistribution< double >.


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