libstdc++
std::gamma_distribution< _RealType > Class Template Reference

Public Types

typedef _RealType input_type
typedef _RealType result_type

Public Member Functions

_RealType alpha () const
 gamma_distribution (const result_type &__alpha_val=result_type(1))
template<class _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
void reset ()

Friends

template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_ostream< _CharT,
_Traits > & 
operator<< (std::basic_ostream< _CharT, _Traits > &__os, const gamma_distribution< _RealType1 > &__x)
template<typename _CharT , typename _Traits >
std::basic_istream< _CharT,
_Traits > & 
operator>> (std::basic_istream< _CharT, _Traits > &__is, gamma_distribution &__x)

Detailed Description

template<typename _RealType = double>
class std::gamma_distribution< _RealType >

A gamma continuous distribution for random numbers.

The formula for the gamma probability mass function is $ p(x) = \frac{1}{\Gamma(\alpha)} x^{\alpha - 1} e^{-x} $.

Definition at line 2320 of file tr1_impl/random.

Constructor & Destructor Documentation

template<typename _RealType = double>
std::gamma_distribution< _RealType >::gamma_distribution ( const result_type &  __alpha_val = result_type(1))
inlineexplicit

Constructs a gamma distribution with parameters $ \alpha $.

Definition at line 2332 of file tr1_impl/random.

Member Function Documentation

template<typename _RealType = double>
_RealType std::gamma_distribution< _RealType >::alpha ( ) const
inline

Gets the $ \alpha $ of the distribution.

Definition at line 2343 of file tr1_impl/random.

template<typename _RealType >
template<class _UniformRandomNumberGenerator >
gamma_distribution< _RealType >::result_type std::gamma_distribution< _RealType >::operator() ( _UniformRandomNumberGenerator &  __urng)

Cheng's rejection algorithm GB for alpha >= 1 and a modification of Vaduva's rejection from Weibull algorithm due to Devroye for alpha < 1.

References: Cheng, R. C. "The Generation of Gamma Random Variables with Non-integral Shape Parameter." Applied Statistics, 26, 71-75, 1977.

Vaduva, I. "Computer Generation of Gamma Gandom Variables by Rejection and Composition Procedures." Math. Operationsforschung and Statistik, Series in Statistics, 8, 545-576, 1977.

Devroye, L. "Non-Uniform Random Variates Generation." Springer-Verlag, New York, 1986, Ch. IX, Sect. 3.4 (+ Errata!).

Definition at line 1501 of file random.tcc.

References std::exp(), std::log(), and std::pow().

template<typename _RealType = double>
void std::gamma_distribution< _RealType >::reset ( )
inline

Resets the distribution.

Definition at line 2350 of file tr1_impl/random.

Friends And Related Function Documentation

template<typename _RealType = double>
template<typename _RealType1 , typename _CharT , typename _Traits >
std::basic_ostream<_CharT, _Traits>& operator<< ( std::basic_ostream< _CharT, _Traits > &  __os,
const gamma_distribution< _RealType1 > &  __x 
)
friend

Inserts a gamma_distribution random number distribution __x into the output stream __os.

Parameters
__osAn output stream.
__xA gamma_distribution random number distribution.
Returns
The output stream with the state of __x inserted or in an error state.
template<typename _RealType = double>
template<typename _CharT , typename _Traits >
std::basic_istream<_CharT, _Traits>& operator>> ( std::basic_istream< _CharT, _Traits > &  __is,
gamma_distribution< _RealType > &  __x 
)
friend

Extracts a gamma_distribution random number distribution __x from the input stream __is.

Parameters
__isAn input stream.
__xA gamma_distribution random number generator engine.
Returns
The input stream with __x extracted or in an error state.

Definition at line 2382 of file tr1_impl/random.


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