13#ifndef ROOT_Math_MixMaxEngine
14#define ROOT_Math_MixMaxEngine
101 template<
int N,
int SkipNumber>
106 typedef TRandomEngine BaseType;
110 typedef uint64_t StateInt_t;
112 typedef unsigned long long StateInt_t;
114 typedef uint64_t Result_t;
117 MixMaxEngine(uint64_t seed=1);
119 ~MixMaxEngine()
override;
126 static uint64_t MaxInt();
129 static uint64_t MinInt();
132 void SetSeed(Result_t seed);
135 double Rndm()
override {
return Rndm_impl(); }
138 inline double operator() () {
return Rndm_impl(); }
141 void RndmArray (
int n,
double * array);
147 static const char *
Name();
153 void GetState(std::vector<StateInt_t> & state)
const;
157 void SetState(
const std::vector<StateInt_t> & state);
170 MixMaxEngineImpl<N> * fRng;
174 typedef MixMaxEngine<240,0> MixMaxEngine240;
175 typedef MixMaxEngine<256,2> MixMaxEngine256;
176 typedef MixMaxEngine<17,0> MixMaxEngine17;
178 extern template class MixMaxEngine<240,0>;
179 extern template class MixMaxEngine<256,0>;
180 extern template class MixMaxEngine<256,2>;
181 extern template class MixMaxEngine<256,4>;
182 extern template class MixMaxEngine<17,0>;
183 extern template class MixMaxEngine<17,1>;
184 extern template class MixMaxEngine<17,2>;
TRObject operator()(const T1 &t1) const