/* * RandomNumberGenerator.hpp * * Created on: Dec 31, 2010 * Author: heber */ #ifndef RANDOMNUMBERGENERATOR_HPP_ #define RANDOMNUMBERGENERATOR_HPP_ // include config.h #ifdef HAVE_CONFIG_H #include #endif /** Abstract base class for a random number generator. * * This class represents the interface to the random number generators. * Hence, they all can be accessed the same way. * * It is also the base class that is needed for RandomNumberGeneratorFactory. */ class RandomNumberGenerator { public: /** obtain a random number via generator and the specific distribution. * */ virtual double operator()() const =0; /** Set the generator's seed. * * @param _seed seed to set to */ virtual void seed(unsigned int _seed)=0; /** Getter for the type name of the internal engine. * */ virtual std::string EngineName()=0; /** Getter for the type name of the internal distribution. * */ virtual std::string DistributionName()=0; RandomNumberGenerator() {}; virtual ~RandomNumberGenerator() {}; }; #endif /* RANDOMNUMBERGENERATOR_HPP_ */