00001 #ifndef PINKGENERATOR_H_ 00002 #define PINKGENERATOR_H_ 00003 00004 //#include "ThreadSpecificRandomDistribution.h" 00005 #include "RandomDistribution.h" 00006 #include "RandomEngine.h" 00007 00009 00015 class PinkGenerator 00016 { 00017 protected: 00018 double value; 00019 int nGen; 00020 00021 static double av[3][5]; 00022 static double pv[3][5]; 00023 00024 double randreg[5]; 00025 00026 public: 00027 PinkGenerator(int numGen=3); 00028 virtual ~PinkGenerator(); 00029 00030 virtual void setNumGen(int numGen=3); 00031 00033 virtual int reset(); 00034 00035 virtual int adjust(double dt); 00036 00038 virtual void advance(); 00039 00041 inline double getValue() 00042 { 00043 return value; 00044 } 00045 00046 inline double operator()() 00047 { 00048 advance(); 00049 return value; 00050 } 00051 00052 protected: 00053 // //! Random number generator 00054 // static ThreadSpecificRandomDistribution< UniformDistribution > white_noise; 00055 00056 static UniformDistribution white_noise; 00057 static MersenneTwister19937 mt; 00058 }; 00059 00060 #endif //PINKGENERATOR_H_