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