|
seeding the random generator can possibly be simpler (without warm-up) not enough for any serious purpose. Nonetheless, SplitMix64 is very useful to initialize the state of other generators starting from a 64-bit seed, as research has shown that initialization must be performed with a generator radically different in nature from the one initialized to avoid correlation on similar seeds. --- I tried a simpler approach, using Knuth MMIX LCG: #define LCG(x) (6364136223846793005ULL * (x) + 1442695040888963407ULL) state[0] = Int2I(n); // guaranteed not stuck in zero state, state[1] = LCG(Int2I(n)); // and state[0], state[1] very different } |