Пример #1
0
        public void Run()
        {
            var tasks   = new Task[Pow2.T08];
            var indices = range(0xFFFFul, 0xFFFFFFFFul).Where(x => x % 2 != 0).Take(Pow2.T08).ToArray();

            for (var i = 0u; i < tasks.Length; i++)
            {
                var random  = Rng.Pcg64(0, indices[i]).ToPolyrand();
                var context = Fsm.CreateContext(random);
                var transF  = TransRules().ToFunction();
                var machine = Fsm.Machine($"Fsm1-{i}", context, S0, S5, transF);
                tasks[i] = Fsm.Run(machine);
            }
            Task.WaitAll(tasks);
        }
Пример #2
0
 public void polyrand()
 {
     rng_bench(Rng.Pcg64(Seed).Stream(RangeI32));
     rng_bench(Rng.Pcg64(Seed).Stream(RangeF32));
     rng_bench(Rng.Pcg64(Seed).Stream(RangeF64));
 }
Пример #3
0
 public void bench_pcg64_uniform_u32()
 {
     Benchmark(Rng.Pcg64().PointSource <int>());
 }
Пример #4
0
 public void bench_pcg64_uniform_u64()
 {
     Benchmark(Rng.Pcg64().PointSource <ulong>());
 }