libstdc++
std::binomial_distribution< _IntType, _RealType > Class Template Reference

Public Types

typedef _RealType input_type
 
typedef _IntType result_type
 

Public Member Functions

template<class _UniformRandomNumberGenerator >
binomial_distribution
< _IntType, _RealType >
::result_type 
_M_waiting (_UniformRandomNumberGenerator &__urng, _IntType __t)
 
 binomial_distribution (_IntType __t=1, const _RealType &__p=_RealType(0.5))
 
template<class _UniformRandomNumberGenerator >
binomial_distribution
< _IntType, _RealType >
::result_type 
operator() (_UniformRandomNumberGenerator &__urng)
 
template<class _UniformRandomNumberGenerator >
result_type operator() (_UniformRandomNumberGenerator &__urng)
 
_RealType p () const
 
void reset ()
 
_IntType t () const
 

Friends

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

Detailed Description

template<typename _IntType = int, typename _RealType = double>
class std::binomial_distribution< _IntType, _RealType >

A discrete binomial random number distribution.

The formula for the binomial probability mass function is $ p(i) = \binom{n}{i} p^i (1 - p)^{t - i} $ where $ t $ and $ p $ are the parameters of the distribution.

Definition at line 1951 of file tr1_impl/random.

Member Function Documentation

template<typename _IntType = int, typename _RealType = double>
template<class _UniformRandomNumberGenerator >
binomial_distribution<_IntType, _RealType>::result_type std::binomial_distribution< _IntType, _RealType >::operator() ( _UniformRandomNumberGenerator &  __urng)

A rejection algorithm when t * p >= 8 and a simple waiting time method - the second in the referenced book - otherwise. NB: The former is available only if _GLIBCXX_USE_C99_MATH_TR1 is defined.

Reference: Devroye, L. "Non-Uniform Random Variates Generation." Springer-Verlag, New York, 1986, Ch. X, Sect. 4 (+ Errata!).

Definition at line 1161 of file random.tcc.

References std::abs(), std::numeric_limits< _Tp >::epsilon(), std::log(), and std::numeric_limits< _Tp >::max().

template<typename _IntType = int, typename _RealType = double>
_RealType std::binomial_distribution< _IntType, _RealType >::p ( ) const
inline

Gets the distribution p parameter.

Definition at line 1979 of file tr1_impl/random.

template<typename _IntType = int, typename _RealType = double>
_IntType std::binomial_distribution< _IntType, _RealType >::t ( ) const
inline

Gets the distribution t parameter.

Definition at line 1972 of file tr1_impl/random.

Friends And Related Function Documentation

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

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

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

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

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

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