Honeycomb  0.1
Component-Model Framework
Poisson.h
Go to the documentation of this file.
1 // Honeycomb, Copyright (C) 2015 NewGamePlus Inc. Distributed under the Boost Software License v1.0.
2 #pragma once
3 
5 
6 namespace honey
7 {
8 
10 
27 template<class Real>
28 class Poisson_ : public RandomDist<Real>
29 {
30  typedef RandomDist<Real> Super;
31  RandomDist_imports();
32  template<class> friend class Poisson_;
33  typedef typename Numeral<Real>::Int Int;
35  typedef Gamma_<Double> Gamma;
38 
39 public:
40  Poisson_(RandomGen& gen, Real mu) : Super(gen), mu(mu) { assert(mu > 0); }
41 
42  virtual Real next() const;
43  virtual Real pdf(Real x) const;
44  virtual Real cdf(Real x) const;
45  virtual Real cdfComp(Real x) const;
46  virtual Real cdfInv(Real P) const;
47  virtual Real mean() const { return mu; }
48  virtual Real variance() const { return mu; }
49 
51 
54  static Real eventMean(Int x, Real P);
55 
57 };
58 
62 
63 extern template class Poisson_<Float>;
64 extern template class Poisson_<Double>;
65 
66 }
virtual Real mean() const
Calc mean.
Definition: Poisson.h:47
Poisson_< Float > Poisson_f
Definition: Poisson.h:60
virtual Real cdf(Real x) const
Cumulative Distribution Function.
Definition: Poisson.cpp:56
virtual Real cdfComp(Real x) const
Complement of the CDF.
Definition: Poisson.cpp:65
Gamma_< Real > Gamma
Definition: Gamma.h:54
Random number generator interface.
Definition: Gen.h:11
Gaussian_< Real > Gaussian
Definition: Gaussian.h:56
Generate a random integer variate from a poisson distribution.
Definition: Poisson.h:28
virtual Real pdf(Real x) const
Probability Density Function.
Definition: Poisson.cpp:47
Real mu
Definition: Poisson.h:56
Generate a random variate from a gamma distribution .
Definition: Gamma.h:29
Class to evaluate Gamma and related functions.
Definition: Gamma.h:9
GammaFunc_< Real > GammaFunc
Definition: Gamma.h:100
Poisson_< Real > Poisson
Definition: Poisson.h:59
Binomial_< Real > Binomial
Definition: Binomial.h:55
#define assert(...)
Forwards to assert_#args. See assert_1(), assert_2().
Definition: Debug.h:24
float Real
Real number type. See Real_ for real number operations and constants.
Definition: Real.h:21
Numeric type information, use numeral() to get instance safely from a static context.
Definition: Numeral.h:17
Poisson_(RandomGen &gen, Real mu)
Definition: Poisson.h:40
virtual Real variance() const
Calc variance.
Definition: Poisson.h:48
virtual Real next() const
Get next randomly distributed variate. Requires a random generator (see ctor or setGen()) ...
Definition: Poisson.cpp:11
Generate a random integer variate from a binomial distribution.
Definition: Binomial.h:25
static Real eventMean(Int x, Real P)
Calculate mean given all other values.
Definition: Poisson.cpp:110
Generate a normally (Gaussian) distributed random variate.
Definition: Gaussian.h:26
Global Honeycomb namespace.
Poisson_< Double > Poisson_d
Definition: Poisson.h:61
virtual Real cdfInv(Real P) const
Inverse of the CDF.
Definition: Poisson.cpp:75
Base class for all random distributions.
Definition: Dist.h:15