Changes in / [93:f857981306ea:91:e28fc773f3c0] in lemon
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/random.h
r92 r68 804 804 } 805 805 806 /// Poisson distribution807 808 /// This function generates a Poisson distribution random number with809 /// parameter \c lambda.810 ///811 /// The probability mass function of this distribusion is812 /// \f[ \frac{e^{-\lambda}\lambda^k}{k!} \f]813 /// \note The algorithm is taken from the book of Donald E. Knuth titled814 /// ''Seminumerical Algorithms'' (1969). Its running time is linear in the815 /// return value.816 817 int poisson(double lambda)818 {819 const double l = std::exp(-lambda);820 int k=0;821 double p = 1.0;822 do {823 k++;824 p*=real<double>();825 } while (p>=l);826 return k-1;827 }828 829 806 ///@} 830 807 -
test/random_test.cc
r92 r39 34 34 //Does gamma work with integer k? 35 35 a=lemon::rnd.gamma(4.0,0); 36 a=lemon::rnd.poisson(.5);37 36 }
Note: See TracChangeset
for help on using the changeset viewer.