00001 #ifndef Randomizer_h
00002 #define Randomizer_h
00003
00004 class State;
00005 typedef boost::shared_ptr<State> StateP;
00006
00011 class Randomizer
00012 {
00013 public:
00014 Randomizer() {}
00015
00016 virtual ~Randomizer() {}
00017
00019 virtual int getRandomInteger(int p, int q) = 0;
00020
00022 virtual int getRandomInteger(int p) = 0;
00023
00025 virtual double getRandomDouble() = 0;
00026
00027 virtual void registerParameters(StateP s) {}
00028
00029 virtual bool initialize(StateP s)
00030 { return true; }
00031 };
00032
00033 typedef boost::shared_ptr<Randomizer> RandomizerP;
00034
00035 #endif
00036