00001 #ifndef MERSENNETWISTER_H
00002 #define MERSENNETWISTER_H
00003 
00004 #include <boost/random/mersenne_twister.hpp>
00005 #include <boost/random/uniform_real.hpp>
00006 #include <boost/random/variate_generator.hpp>
00007 
00008 
00009 class MersenneTwister
00010 {
00011 public:
00012     MersenneTwister():dist(0,1),die(gen,dist)
00013     {
00014     }
00015 
00016     double getRandomNormalizedDouble()
00017     {
00018         return die();
00019     }
00020 
00021 private:
00022     boost::mt19937 gen;
00023     boost::uniform_real<> dist;
00024     boost::variate_generator<boost::mt19937&, boost::uniform_real<> > die;    
00025 };
00026 
00027 #endif //MERSENNETWISTER_H