![]() |
Home | Libraries | People | FAQ | More |
boost::random::generalized_inverse_gaussian_distribution
// In header: <boost/random/generalized_inverse_gaussian_distribution.hpp> template<typename RealType = double> class generalized_inverse_gaussian_distribution { public: // types typedef RealType result_type; typedef RealType input_type; // member classes/structs/unions class param_type { public: // types typedef generalized_inverse_gaussian_distribution distribution_type; // public member functions explicit param_type(RealType = 1.0, RealType = 1.0, RealType = 1.0); RealType p() const; RealType a() const; RealType b() const; // friend functions template<typename CharT, typename Traits> std::basic_ostream< CharT, Traits > & operator<<(std::basic_ostream< CharT, Traits > &, const param_type &); template<typename CharT, typename Traits> std::basic_istream< CharT, Traits > & operator>>(std::basic_istream< CharT, Traits > &, const param_type &); bool operator==(const param_type &, const param_type &); bool operator!=(const param_type &, const param_type &); }; // public member functions explicit generalized_inverse_gaussian_distribution(RealType = 1.0, RealType = 1.0, RealType = 1.0); explicit generalized_inverse_gaussian_distribution(const param_type &); template<typename URNG> RealType operator()(URNG &) const; template<typename URNG> result_type operator()(URNG &, const param_type &) const; RealType p() const; RealType a() const; RealType b() const; RealType min() const; RealType max() const; param_type param() const; void param(const param_type &); void reset(); // friend functions template<typename CharT, typename Traits> std::basic_ostream< CharT, Traits > & operator<<(std::basic_ostream< CharT, Traits > &, const generalized_inverse_gaussian_distribution &); template<typename CharT, typename Traits> std::basic_istream< CharT, Traits > & operator>>(std::basic_istream< CharT, Traits > &, const generalized_inverse_gaussian_distribution &); bool operator==(const generalized_inverse_gaussian_distribution &, const generalized_inverse_gaussian_distribution &); bool operator!=(const generalized_inverse_gaussian_distribution &, const generalized_inverse_gaussian_distribution &); };
The generalized inverse gaussian distribution is a real-valued distribution with three parameters p, a, and b. It produced values > 0.
It has . where
is a modified Bessel function of the second kind.
The algorithm used is from
"Random variate generation for the generalized inverse Gaussian distribution", Luc Devroye, Statistics and Computing, Volume 24, 2014, Pages 236 - 246
generalized_inverse_gaussian_distribution
public member functionsexplicit generalized_inverse_gaussian_distribution(RealType p = 1.0, RealType a = 1.0, RealType b = 1.0);
Constructs an generalized_inverse_gaussian_distribution
from its "p", "a", and "b" parameters.
Requires: a > 0 && b >= 0 if p > 0, a > 0 && b > 0 if p == 0, a >= 0 && b > 0 if p < 0
explicit generalized_inverse_gaussian_distribution(const param_type & param);
Constructs an generalized_inverse_gaussian_distribution
from its parameters.
template<typename URNG> RealType operator()(URNG & urng) const;
Returns a random variate distributed according to the generalized inverse gaussian distribution.
template<typename URNG> result_type operator()(URNG & urng, const param_type & param) const;
Returns a random variate distributed accordint to the beta distribution with parameters specified by param
.
RealType p() const;
Returns the "p" parameter of the distribution.
RealType a() const;
Returns the "a" parameter of the distribution.
RealType b() const;
Returns the "b" parameter of the distribution.
RealType min() const;
Returns the smallest value that the distribution can produce.
RealType max() const;
Returns the largest value that the distribution can produce.
param_type param() const;
Returns the parameters of the distribution.
void param(const param_type & param);
Sets the parameters of the distribution.
void reset();
Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset.
generalized_inverse_gaussian_distribution
friend functionstemplate<typename CharT, typename Traits> std::basic_ostream< CharT, Traits > & operator<<(std::basic_ostream< CharT, Traits > & os, const generalized_inverse_gaussian_distribution & wd);
Writes an generalized_inverse_gaussian_distribution
to a std::ostream
.
template<typename CharT, typename Traits> std::basic_istream< CharT, Traits > & operator>>(std::basic_istream< CharT, Traits > & is, const generalized_inverse_gaussian_distribution & wd);
Reads an generalized_inverse_gaussian_distribution
from a std::istream
.
bool operator==(const generalized_inverse_gaussian_distribution & lhs, const generalized_inverse_gaussian_distribution & rhs);
Returns true if the two instances of generalized_inverse_gaussian_distribution
will return identical sequences of values given equal generators.
bool operator!=(const generalized_inverse_gaussian_distribution & lhs, const generalized_inverse_gaussian_distribution & rhs);
Returns true if the two instances of generalized_inverse_gaussian_distribution
will return different sequences of values given equal generators.