static int Seed = 0, NTrials = 1000;
-
-int myrand(rand_t* rand) {
- uint64_t x = rand->state;
- unsigned count = (unsigned)(x >> 59);
- rand->state = x * rand->mult + rand->incr;
- x ^= x >> 18;
- x = (uint32_t)(x >> 27);
- return (x >> count | x << (-count & 31));
-}
-
-void mysrand(rand_t* rand, uint64_t seed) {
- rand->state = 0x4d595df4d0f33173;
- rand->mult = 6364136223846793005u;
- rand->incr = 1442695040888963407u;
- if (seed) {
- rand->state = seed + rand->incr;
- (void)myrand(rand);
- }
-}
-
-
-
-
void qcinit(int seed) {
Seed = (seed ? seed : time(NULL));
srand(Seed);