public void SobolParallelForTest() { ParallelOptions options = new ParallelOptions { MaxDegreeOfParallelism = 16 }; var gen = new ParallelQRNGGenerator(typeof(SobolSequence), this.d, 16); double[][] value = new double[this.n][]; object lock_value = new object(); Parallel.For(0, (int)this.n, options, i => { value[i] = gen.Next(); }); for (int i = 0; i < this.n; i++) { for (int j = 0; j < this.d; j++) { if (value[i] != null) { Console.Write(value[i][j] + " "); } else { Console.Write("null "); } } Console.WriteLine(); } }
public void SobolPseudoParallelTest() { ParallelQRNGGenerator generator = new ParallelQRNGGenerator(typeof(SobolSequence), this.d, 8); for (int i = 0; i < this.n; i++) { double[] vector = generator.Next(); for (int j = 0; j < vector.Length; j++) { Console.Write(vector[j] + " "); Assert.AreEqual(this.reference[i][j], vector[j]); } Console.WriteLine(); } }