1234567891011121314151617181920212223242526272829303132333435363738394041 |
- #ifndef __I_RNG_POOL__HPP
- #define __I_RNG_POOL__HPP
- #include <vector>
- using namespace std;
- enum RngType {
- kRngPoisson,
- kRngGaussian,
- kRngUniform
- };
- /**
- \brief Interface class for RandomNumberQueue
- A class implementing the IRngQueue interface provides fresh random numbers
- from its internal queue via getRandomNumber().
- */
- class IRngQueue
- {
- public:
- virtual double getRandomNumber()=0;
- };
- /**
- \brief Interface class which provides a pool of random number queues.
- A class implementint the IRngQueue interface can be queried for a pointer to
- a IRngQueue object.
- */
- class IRngQueuePool
- {
- public:
- virtual IRngQueue* getRngQueue()=0;
- virtual IRngQueue* getRngQueue(RngType _RType, double _Parameter, int NVectors=10, int NumbersPerVector=2000)=0;
- virtual vector<double>* getRandomNumberVector(IRngQueue*)=0;
- virtual void releaseRngQueue(IRngQueue*)=0;
- };
- #endif // __I_RNG_POOL__HPP
|