Changeset 92:5d4decd1b870 in lemon1.0
 Timestamp:
 03/14/08 17:57:49 (17 years ago)
 Branch:
 default
 Phase:
 public
 Files:

 2 edited
Legend:
 Unmodified
 Added
 Removed

lemon/random.h
r68 r92 804 804 } 805 805 806 /// Poisson distribution 807 808 /// This function generates a Poisson distribution random number with 809 /// parameter \c lambda. 810 /// 811 /// The probability mass function of this distribusion is 812 /// \f[ \frac{e^{\lambda}\lambda^k}{k!} \f] 813 /// \note The algorithm is taken from the book of Donald E. Knuth titled 814 /// ''Seminumerical Algorithms'' (1969). Its running time is linear in the 815 /// 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 k1; 827 } 828 806 829 ///@} 807 830 
test/random_test.cc
r39 r92 34 34 //Does gamma work with integer k? 35 35 a=lemon::rnd.gamma(4.0,0); 36 a=lemon::rnd.poisson(.5); 36 37 }
Note: See TracChangeset
for help on using the changeset viewer.