51 static const int N = 17;
70 void flatArray (
const int size,
double* vect);
76 void setSeeds(
const long * seeds,
int seedNum=0);
96 operator unsigned int();
99 virtual std::ostream &
put (std::ostream & os)
const;
100 virtual std::istream &
get (std::istream & is);
102 virtual std::istream &
getState ( std::istream & is );
104 std::string
name()
const {
return "MixMaxRng"; }
107 std::vector<unsigned long>
put ()
const;
108 bool get (
const std::vector<unsigned long> &
v);
109 bool getState (
const std::vector<unsigned long> &
v);
113 static constexpr
long long int SPECIAL = ((
N==17)? 0 : ((
N==240)? 487013230256099140ULL:0) );
114 static constexpr
long long int SPECIALMUL= ((
N==17)? 36: ((
N==240)? 51 :53) );
118 static constexpr
double INV_M61=0.43368086899420177360298E-18;
121 #define MIXMAX_MOD_MERSENNE(k) ((((k)) & M61) + (((k)) >> BITS) )
145 #pragma GCC diagnostic push
146 #pragma GCC diagnostic ignored "-Wstrict-aliasing"
150 const double one = 1;
153 double d = *(
double*)&tmp;
157 #pragma GCC diagnostic pop
165 #if defined(__x86_64__)
168 #else // on all other platforms, including 32-bit linux, PPC and PPC64, ARM and all Windows
176 std::array<myuint_t, N>
V;