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