discrete-uniform.h

Go to the documentation of this file.
00001 #ifndef BZ_RANDOM_DISCRETE_UNIFORM_H
00002 #define BZ_RANDOM_DISCRETE_UNIFORM_H
00003 
00004 #include <random/default.h>
00005 
00006 BZ_NAMESPACE(ranlib)
00007 
00008 template<typename T = unsigned int, typename IRNG = defaultIRNG,
00009     typename stateTag = defaultState>
00010 class DiscreteUniform : public IRNGWrapper<IRNG,stateTag>
00011 {
00012 public:
00013     typedef T T_numtype;
00014 
00015     DiscreteUniform(T n)
00016     {
00017         BZPRECONDITION(n < 4294967295U);
00018         n_ = n;
00019     }
00020 
00021     T random()
00022     {
00023         return this->irng_.random() % n_;
00024     }
00025 
00026 private:
00027     T n_;
00028 };
00029 
00030 BZ_NAMESPACE_END
00031 
00032 #endif // BZ_RANDOM_DISCRETE_UNIFORM_H

Generated on Mon Oct 22 10:03:41 2007 for blitz by  doxygen 1.3.9.1