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

The TrinomialRand class
Trinomial distribution. More...

#include <trinomial.hpp>

Inheritance diagram for randlib::TrinomialRand< IntType >:
Collaboration diagram for randlib::TrinomialRand< IntType >:

Public Member Functions

 TrinomialRand (int number, double probability1, double probability2)
 
std::string Name () const override
 
void SetParameters (int number, double probability1, double probability2)
 
int GetNumber () const noexcept
 
double GetFirstProbability () const
 
double GetSecondProbability () const
 
double P (const Pair< IntType > &point) const override
 
double logP (const Pair< IntType > &point) const override
 
double F (const Pair< IntType > &point) const override
 
template<std::uniform_random_bit_generator G>
Pair< IntType > operator() (G &g) const
 
long double Correlation () const override
 
Pair< IntType > Mode () const override
 
- Public Member Functions inherited from randlib::DiscreteBivariateDistribution< BinomialRand< IntType >, BinomialRand< IntType >, IntType >
virtual ~DiscreteBivariateDistribution ()
 
- Public Member Functions inherited from randlib::BivariateDistribution< T1, T2, T >
virtual ~BivariateDistribution ()
 
Pair< T > MinValue () const override
 
Pair< T > MaxValue () const override
 
virtual LongDoublePair Mean () const final
 
virtual LongDoubleTriplet Covariance () const final
 
virtual std::pair< T1, T2 > GetMarginalDistributions () const final
 
- Public Member Functions inherited from randlib::ProbabilityDistribution< Pair< T > >
virtual ~ProbabilityDistribution ()=default
 
virtual double F (const Pair< T > &x) const=0
 
void CumulativeDistributionFunction (std::span< const Pair< T > > x, std::span< double > y) const
 
virtual double S (const Pair< T > &x) const
 
void SurvivalFunction (std::span< const Pair< T > > x, std::span< double > y) const
 
Pair< T > operator() (G &g) const
 Draws a variate with the given engine through the virtual interface.
 
Pair< 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< Pair< T > > outputData) const
 Fills the output with variates drawn with the engine of this object.
 
void Sample (G &g, std::span< Pair< 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< Pair< T > >
using value_type = Pair< T >
 
- Protected Member Functions inherited from randlib::DiscreteBivariateDistribution< BinomialRand< IntType >, BinomialRand< IntType >, IntType >
 DiscreteBivariateDistribution ()
 
- Protected Member Functions inherited from randlib::BivariateDistribution< T1, T2, T >
 BivariateDistribution ()
 
- Protected Member Functions inherited from randlib::ProbabilityDistribution< Pair< 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< Pair< 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
 
- Protected Attributes inherited from randlib::BivariateDistribution< T1, T2, T >
T1 X {}
 1st marginal distributions
 
T2 Y {}
 2nd marginal distributions
 
- Static Protected Attributes inherited from randlib::ProbabilityDistribution< Pair< T > >
static constexpr size_t 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 []
 
static constexpr char NON_NEGATIVITY_VIOLATION []
 
static constexpr char UPPER_LIMIT_VIOLATION []
 
static constexpr char LOWER_LIMIT_VIOLATION []
 

Detailed Description

template<typename IntType>
class randlib::TrinomialRand< IntType >

The TrinomialRand class
Trinomial distribution.

Notation: X ~ Trin(n, p_1, p_2)

Related distributions:
X ~ Multin(n, 1 - p_1 - p_2, p_1, p_2)

Constructor & Destructor Documentation

◆ TrinomialRand()

template<typename IntType >
randlib::TrinomialRand< IntType >::TrinomialRand ( int  number,
double  probability1,
double  probability2 
)

Member Function Documentation

◆ Correlation()

template<typename IntType >
long double randlib::TrinomialRand< IntType >::Correlation ( ) const
overridevirtual

◆ F()

template<typename IntType >
double randlib::TrinomialRand< IntType >::F ( const Pair< IntType > &  point) const
override

◆ GetFirstProbability()

template<typename IntType >
double randlib::TrinomialRand< IntType >::GetFirstProbability ( ) const
inline

◆ GetNumber()

template<typename IntType >
int randlib::TrinomialRand< IntType >::GetNumber ( ) const
inlinenoexcept

◆ GetSecondProbability()

template<typename IntType >
double randlib::TrinomialRand< IntType >::GetSecondProbability ( ) const
inline

◆ logP()

template<typename IntType >
double randlib::TrinomialRand< IntType >::logP ( const Pair< IntType > &  point) const
overridevirtual

◆ Mode()

template<typename IntType >
Pair< IntType > randlib::TrinomialRand< IntType >::Mode ( ) const
overridevirtual

◆ Name()

template<typename IntType >
std::string randlib::TrinomialRand< IntType >::Name ( ) const
overridevirtual
Returns
title of distribution, for instance "Normal(0, 1)"

Implements randlib::ProbabilityDistribution< Pair< T > >.

◆ operator()()

template<typename IntType >
template<std::uniform_random_bit_generator G>
Pair< IntType > randlib::TrinomialRand< IntType >::operator() ( G &  g) const

◆ P()

template<typename IntType >
double randlib::TrinomialRand< IntType >::P ( const Pair< IntType > &  point) const
overridevirtual

◆ SetParameters()

template<typename IntType >
void randlib::TrinomialRand< IntType >::SetParameters ( int  number,
double  probability1,
double  probability2 
)

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