Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Class template generalized_inverse_gaussian_distribution

boost::generalized_inverse_gaussian_distribution

Synopsis

// In header: <boost/random/generalized_inverse_gaussian_distribution.hpp>

template<typename RealType> 
class generalized_inverse_gaussian_distribution {
public:
  // types
  typedef  ;
  typedef  ; 

  // member classes/structs/unions

  class param_type {
  public:
    // types
    typedef  ;

    // public member functions
    ( = ,  = ,  = );
     () ;
     () ;
     () ;

    // friend functions
    template<typename CharT, typename Traits> 
       
      (, );
    template<typename CharT, typename Traits> 
       
      (, );
     (, );
     (, );
  };

  // public member functions
  ( = ,  = , 
                                                      = );
  (param_type &);
  template<typename URNG>  () ;
  template<typename URNG> 
     (, param_type &) ;
   () ;
   () ;
   () ;
   () ;
   () ;
  param_type () ;
   (param_type &);
   ();

  // friend functions
  template<typename CharT, typename Traits> 
     
    (, 
               );
  template<typename CharT, typename Traits> 
     
    (, 
               );
   (, 
                  );
   (, 
                  );
};

Description

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 functions

  1. ( p = , 
                                                        a = , 
                                                        b = );

    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

  2. (param_type & param);

    Constructs an generalized_inverse_gaussian_distribution from its parameters.

  3. template<typename URNG>  ( urng) ;

    Returns a random variate distributed according to the generalized inverse gaussian distribution.

  4. template<typename URNG> 
       ( urng, param_type & param) ;

    Returns a random variate distributed accordint to the beta distribution with parameters specified by param.

  5.  () ;

    Returns the "p" parameter of the distribution.

  6.  () ;

    Returns the "a" parameter of the distribution.

  7.  () ;

    Returns the "b" parameter of the distribution.

  8.  () ;

    Returns the smallest value that the distribution can produce.

  9.  () ;

    Returns the largest value that the distribution can produce.

  10. param_type () ;

    Returns the parameters of the distribution.

  11.  (param_type & param);

    Sets the parameters of the distribution.

  12.  ();

    Effects: Subsequent uses of the distribution do not depend on values produced by any engine prior to invoking reset.

generalized_inverse_gaussian_distribution friend functions

  1. template<typename CharT, typename Traits> 
       
      ( os, 
                  wd);

    Writes an generalized_inverse_gaussian_distribution to a std::ostream.

  2. template<typename CharT, typename Traits> 
       
      ( is, 
                  wd);

    Reads an generalized_inverse_gaussian_distribution from a std::istream.

  3.  ( lhs, 
                     rhs);

    Returns true if the two instances of generalized_inverse_gaussian_distribution will return identical sequences of values given equal generators.

  4.  ( lhs, 
                     rhs);

    Returns true if the two instances of generalized_inverse_gaussian_distribution will return different sequences of values given equal generators.


PrevUpHomeNext