Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

MersenneTwister.h

Go to the documentation of this file.
00001 #pragma once
00002 #ifndef MERSENNETWISTER_H
00003 #define MERSENNETWISTER_H
00004 
00005 #include "./RandomGenerator.h"
00006 #include "../../Common/types.h"
00007 
00008 #include <valarray>
00009 using namespace std;
00010 
00011 class MersenneTwister : public RandomGenerator
00012 {
00013 public:
00014 
00017         MersenneTwister(LongNatural seed=0);
00018         MersenneTwister(const valarray<LongNatural>& seeds);
00019         ~MersenneTwister();
00021         inline Real getUniform() {return (Real(GetOneRandomInteger()) + 0.5)/4294967296.0;}
00023         LongNatural GetOneRandomInteger() ;
00025     VeryLongNatural Max();
00026         LongNatural Min();
00027         void SetSeed(LongNatural seed);
00028 
00029 private:
00030         LongInteger seed;
00031         valarray<LongNatural> mt;
00032         LongNatural mti;
00033 };
00034 
00035 #endif

Note: Generated nightly - reload for latest version
Generated on Thu Dec 22 23:12:36 2005 for terreneuve by doxygen 1.3.6