diff --git a/src/Numerics/Generate.cs b/src/Numerics/Generate.cs index 69f11ef3..b447e3ae 100644 --- a/src/Numerics/Generate.cs +++ b/src/Numerics/Generate.cs @@ -589,7 +589,7 @@ namespace MathNet.Numerics /// public static double[] WhiteGaussianNoise(int length, double mean, double standardDeviation) { - return Normal.Samples(MersenneTwister.Default, mean, standardDeviation).Take(length).ToArray(); + return Normal.Samples(SystemRandomSource.Default, mean, standardDeviation).Take(length).ToArray(); } /// @@ -597,7 +597,7 @@ namespace MathNet.Numerics /// public static IEnumerable WhiteGaussianNoiseSequence(double mean, double standardDeviation) { - return Normal.Samples(MersenneTwister.Default, mean, standardDeviation); + return Normal.Samples(SystemRandomSource.Default, mean, standardDeviation); } /// @@ -610,7 +610,7 @@ namespace MathNet.Numerics /// Location mu-parameter of the stable distribution public static double[] StableNoise(int length, double alpha, double beta, double scale, double location) { - return Stable.Samples(MersenneTwister.Default, alpha, beta, scale, location).Take(length).ToArray(); + return Stable.Samples(SystemRandomSource.Default, alpha, beta, scale, location).Take(length).ToArray(); } /// @@ -622,7 +622,7 @@ namespace MathNet.Numerics /// Location mu-parameter of the stable distribution public static IEnumerable StableNoiseSequence(double alpha, double beta, double scale, double location) { - return Stable.Samples(MersenneTwister.Default, alpha, beta, scale, location); + return Stable.Samples(SystemRandomSource.Default, alpha, beta, scale, location); } } } diff --git a/src/Numerics/LinearAlgebra/Builder.cs b/src/Numerics/LinearAlgebra/Builder.cs index 3cc23640..9d5251bf 100644 --- a/src/Numerics/LinearAlgebra/Builder.cs +++ b/src/Numerics/LinearAlgebra/Builder.cs @@ -34,7 +34,6 @@ using System.Linq; using MathNet.Numerics.Distributions; using MathNet.Numerics.LinearAlgebra.Solvers; using MathNet.Numerics.LinearAlgebra.Storage; -// TODO: split up and move to proper folders using MathNet.Numerics.Random; namespace MathNet.Numerics.LinearAlgebra.Double @@ -350,7 +349,6 @@ namespace MathNet.Numerics.LinearAlgebra using Complex64 = Numerics.Complex; #else using Complex64 = System.Numerics.Complex; - #endif /// @@ -447,7 +445,7 @@ namespace MathNet.Numerics.LinearAlgebra /// public Matrix Random(int rows, int columns) { - return Random(rows, columns, new Normal(MersenneTwister.Default)); + return Random(rows, columns, new Normal(SystemRandomSource.Default)); } /// @@ -455,7 +453,7 @@ namespace MathNet.Numerics.LinearAlgebra /// public Matrix Random(int rows, int columns, int seed) { - return Random(rows, columns, new Normal(new MersenneTwister(seed, true))); + return Random(rows, columns, new Normal(new SystemRandomSource(seed, true))); } /// @@ -474,7 +472,7 @@ namespace MathNet.Numerics.LinearAlgebra /// public Matrix RandomPositiveDefinite(int order) { - var a = Random(order, order, new Normal(MersenneTwister.Default)); + var a = Random(order, order, new Normal(SystemRandomSource.Default)); return a.ConjugateTransposeThisAndMultiply(a); } @@ -484,7 +482,7 @@ namespace MathNet.Numerics.LinearAlgebra /// public Matrix RandomPositiveDefinite(int order, int seed) { - var a = Random(order, order, new Normal(new MersenneTwister(seed, true))); + var a = Random(order, order, new Normal(new SystemRandomSource(seed, true))); return a.ConjugateTransposeThisAndMultiply(a); } @@ -1395,15 +1393,15 @@ namespace MathNet.Numerics.LinearAlgebra /// public Vector Random(int length) { - return Random(length, new Normal(MersenneTwister.Default)); + return Random(length, new Normal(SystemRandomSource.Default)); } /// - /// Create a new dense vector with values sampled from the standard distribution with a mersenne twister random source. + /// Create a new dense vector with values sampled from the standard distribution with a system random source. /// public Vector Random(int length, int seed) { - return Random(length, new Normal(new MersenneTwister(seed, true))); + return Random(length, new Normal(new SystemRandomSource(seed, true))); } /// diff --git a/src/Numerics/Statistics/MCMC/HybridMC.cs b/src/Numerics/Statistics/MCMC/HybridMC.cs index 61411197..5457edee 100644 --- a/src/Numerics/Statistics/MCMC/HybridMC.cs +++ b/src/Numerics/Statistics/MCMC/HybridMC.cs @@ -85,7 +85,7 @@ namespace MathNet.Numerics.Statistics.Mcmc /// The number of iterations in between returning samples. /// When the number of burnInterval iteration is negative. public HybridMC(double[] x0, DensityLn pdfLnP, int frogLeapSteps, double stepSize, int burnInterval = 0) - : this(x0, pdfLnP, frogLeapSteps, stepSize, burnInterval, new double[x0.Count()], MersenneTwister.Default, Grad) + : this(x0, pdfLnP, frogLeapSteps, stepSize, burnInterval, new double[x0.Count()], SystemRandomSource.Default, Grad) { for (int i = 0; i < _length; i++) { @@ -109,7 +109,7 @@ namespace MathNet.Numerics.Statistics.Mcmc /// the components of the momentum. /// When the number of burnInterval iteration is negative. public HybridMC(double[] x0, DensityLn pdfLnP, int frogLeapSteps, double stepSize, int burnInterval, double[] pSdv) - : this(x0, pdfLnP, frogLeapSteps, stepSize, burnInterval, pSdv, MersenneTwister.Default) + : this(x0, pdfLnP, frogLeapSteps, stepSize, burnInterval, pSdv, SystemRandomSource.Default) { } diff --git a/src/Numerics/Statistics/MCMC/MCMCSampler.cs b/src/Numerics/Statistics/MCMC/MCMCSampler.cs index a23f3411..017a0ac8 100644 --- a/src/Numerics/Statistics/MCMC/MCMCSampler.cs +++ b/src/Numerics/Statistics/MCMC/MCMCSampler.cs @@ -107,7 +107,7 @@ namespace MathNet.Numerics.Statistics.Mcmc { Accepts = 0; Samples = 0; - RandomSource = MersenneTwister.Default; + RandomSource = SystemRandomSource.Default; } /// diff --git a/src/Numerics/Statistics/MCMC/UnivariateHybridMC.cs b/src/Numerics/Statistics/MCMC/UnivariateHybridMC.cs index 0c1f9f8a..1cd72c24 100644 --- a/src/Numerics/Statistics/MCMC/UnivariateHybridMC.cs +++ b/src/Numerics/Statistics/MCMC/UnivariateHybridMC.cs @@ -83,7 +83,7 @@ namespace MathNet.Numerics.Statistics.Mcmc /// the momentum. /// When the number of burnInterval iteration is negative. public UnivariateHybridMC(double x0, DensityLn pdfLnP, int frogLeapSteps, double stepSize, int burnInterval = 0, double pSdv = 1) - : this(x0, pdfLnP, frogLeapSteps, stepSize, burnInterval, pSdv, MersenneTwister.Default) + : this(x0, pdfLnP, frogLeapSteps, stepSize, burnInterval, pSdv, SystemRandomSource.Default) { } diff --git a/src/UnitTests/DistributionTests/CommonDistributionTests.cs b/src/UnitTests/DistributionTests/CommonDistributionTests.cs index 8fcb6862..843c4314 100644 --- a/src/UnitTests/DistributionTests/CommonDistributionTests.cs +++ b/src/UnitTests/DistributionTests/CommonDistributionTests.cs @@ -183,7 +183,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests [Test] public void SampleFollowsCorrectDistribution() { - Random rnd = new MersenneTwister(1); + Random rnd = new SystemRandomSource(1); foreach (var dd in _discreteDistributions) { @@ -216,7 +216,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests [Test] public void SamplesFollowsCorrectDistribution() { - Random rnd = new MersenneTwister(1); + Random rnd = new SystemRandomSource(1); foreach (var dd in _discreteDistributions) { diff --git a/src/UnitTests/InterpolationTests/LinearInterpolationCase.cs b/src/UnitTests/InterpolationTests/LinearInterpolationCase.cs index 4e989c90..1a7a5da9 100644 --- a/src/UnitTests/InterpolationTests/LinearInterpolationCase.cs +++ b/src/UnitTests/InterpolationTests/LinearInterpolationCase.cs @@ -52,7 +52,7 @@ namespace MathNet.Numerics.UnitTests.InterpolationTests public static void Build(out double[] x, out double[] y, out double[] xtest, out double[] ytest, int samples = 3, double sampleOffset = -0.5, double slope = 2.0, double intercept = -1.0) { // Fixed-seed "random" distribution to ensure we always test with the same data - var uniform = new ContinuousUniform(0.0, 1.0, new MersenneTwister(42)); + var uniform = new ContinuousUniform(0.0, 1.0, new SystemRandomSource(42)); // build linear samples x = new double[samples]; diff --git a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs index 4c9b547e..2ed3c9a5 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex/DiagonalMatrixTests.cs @@ -368,7 +368,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [Test] public void DenseDiagonalMatrixMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -385,7 +385,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [Test] public void DenseDiagonalMatrixTransposeAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -402,7 +402,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [Test] public void DenseDiagonalMatrixTransposeThisAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); @@ -419,7 +419,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [Test] public void DiagonalDenseMatrixMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); @@ -436,7 +436,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [Test] public void DiagonalDenseMatrixTransposeAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -453,7 +453,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex [Test] public void DiagonalDenseMatrixTransposeThisAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs index 7d83586e..89589d70 100644 --- a/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Complex32/DiagonalMatrixTests.cs @@ -364,7 +364,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [Test] public void DenseDiagonalMatrixMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -381,7 +381,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [Test] public void DenseDiagonalMatrixTransposeAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -398,7 +398,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [Test] public void DenseDiagonalMatrixTransposeThisAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); @@ -415,7 +415,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [Test] public void DiagonalDenseMatrixMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); @@ -432,7 +432,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [Test] public void DiagonalDenseMatrixTransposeAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -449,7 +449,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32 [Test] public void DiagonalDenseMatrixTransposeThisAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); diff --git a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs index e1febf20..829f55a2 100644 --- a/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Double/DiagonalMatrixTests.cs @@ -396,7 +396,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void DenseDiagonalMatrixMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -413,7 +413,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void DenseDiagonalMatrixTransposeAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -430,7 +430,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void DenseDiagonalMatrixTransposeThisAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); @@ -447,7 +447,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void DiagonalDenseMatrixMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); @@ -464,7 +464,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void DiagonalDenseMatrixTransposeAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -481,7 +481,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double [Test] public void DiagonalDenseMatrixTransposeThisAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); diff --git a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs index 36c7e15a..eb651e9a 100644 --- a/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs +++ b/src/UnitTests/LinearAlgebraTests/Single/DiagonalMatrixTests.cs @@ -362,7 +362,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [Test] public void DenseDiagonalMatrixMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -379,7 +379,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [Test] public void DenseDiagonalMatrixTransposeAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -396,7 +396,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [Test] public void DenseDiagonalMatrixTransposeThisAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); @@ -413,7 +413,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [Test] public void DiagonalDenseMatrixMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); @@ -430,7 +430,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [Test] public void DiagonalDenseMatrixTransposeAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var tall = Matrix.Build.Random(8, 3, dist); @@ -447,7 +447,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single [Test] public void DiagonalDenseMatrixTransposeThisAndMultiply() { - var dist = new ContinuousUniform(-1.0, 1.0, new MersenneTwister()); + var dist = new ContinuousUniform(-1.0, 1.0, new SystemRandomSource(1)); Assert.IsInstanceOf(Matrix.Build.DiagonalIdentity(3, 3)); var wide = Matrix.Build.Random(3, 8, dist); diff --git a/src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs b/src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs index 90acd16c..896a4126 100644 --- a/src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs +++ b/src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs @@ -49,7 +49,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests public void MetropolisHastingsConstructor() { var normal = new Normal(0.0, 1.0); - var rnd = new MersenneTwister(); + var rnd = new SystemRandomSource(1); var ms = new MetropolisHastingsSampler(0.2, normal.Density, (x, y) => Normal.PDF(x, 0.1, y), x => Normal.Sample(rnd, x, 0.1), 10) { @@ -68,7 +68,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests public void SampleTest() { var normal = new Normal(0.0, 1.0); - var rnd = new MersenneTwister(); + var rnd = new SystemRandomSource(1); var ms = new MetropolisHastingsSampler(0.2, normal.Density, (x, y) => Normal.PDF(x, 0.1, y), x => Normal.Sample(rnd, x, 0.1), 10) { @@ -85,7 +85,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests public void SampleArrayTest() { var normal = new Normal(0.0, 1.0); - var rnd = new MersenneTwister(); + var rnd = new SystemRandomSource(1); var ms = new MetropolisHastingsSampler(0.2, normal.Density, (x, y) => Normal.PDF(x, 0.1, y), x => Normal.Sample(rnd, x, 0.1), 10) { diff --git a/src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs b/src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs index 8c82a726..c6d6756e 100644 --- a/src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs +++ b/src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs @@ -51,7 +51,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests public void MetropolisConstructor() { var normal = new Normal(0.0, 1.0); - var rnd = new MersenneTwister(); + var rnd = new SystemRandomSource(1); var ms = new MetropolisSampler(0.2, normal.Density, x => Normal.Sample(rnd, x, 0.1), 10); Assert.IsNotNull(ms.RandomSource); @@ -67,7 +67,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests public void SampleTest() { var normal = new Normal(0.0, 1.0); - var rnd = new MersenneTwister(); + var rnd = new SystemRandomSource(1); var ms = new MetropolisSampler(0.2, normal.Density, x => Normal.Sample(rnd, x, 0.1), 10) { @@ -84,7 +84,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests public void SampleArrayTest() { var normal = new Normal(0.0, 1.0); - var rnd = new MersenneTwister(); + var rnd = new SystemRandomSource(1); var ms = new MetropolisSampler(0.2, normal.Density, x => Normal.Sample(rnd, x, 0.1), 10) { diff --git a/src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs b/src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs index cdf7a2d0..1b2f8084 100644 --- a/src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs +++ b/src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs @@ -48,7 +48,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests [Test] public void RejectTest() { - var uniform = new ContinuousUniform(0.0, 1.0, new MersenneTwister()); + var uniform = new ContinuousUniform(0.0, 1.0, new SystemRandomSource(1)); var rs = new RejectionSampler(x => Math.Pow(x, 1.7)*Math.Pow(1.0 - x, 5.3), x => 0.021, uniform.Sample); Assert.IsNotNull(rs.RandomSource); @@ -62,7 +62,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests [Test] public void SampleTest() { - var uniform = new ContinuousUniform(0.0, 1.0, new MersenneTwister()); + var uniform = new ContinuousUniform(0.0, 1.0, new SystemRandomSource(1)); var rs = new RejectionSampler(x => Math.Pow(x, 1.7)*Math.Pow(1.0 - x, 5.3), x => 0.021, uniform.Sample) { @@ -78,7 +78,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests [Test] public void SampleArrayTest() { - var uniform = new ContinuousUniform(0.0, 1.0, new MersenneTwister()); + var uniform = new ContinuousUniform(0.0, 1.0, new SystemRandomSource(1)); var rs = new RejectionSampler(x => Math.Pow(x, 1.7)*Math.Pow(1.0 - x, 5.3), x => 0.021, uniform.Sample) { @@ -94,7 +94,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests [Test] public void NoUpperBound() { - var uniform = new ContinuousUniform(0.0, 1.0, new MersenneTwister()); + var uniform = new ContinuousUniform(0.0, 1.0, new SystemRandomSource(1)); var rs = new RejectionSampler(x => Math.Pow(x, 1.7)*Math.Pow(1.0 - x, 5.3), x => Double.NegativeInfinity, uniform.Sample); Assert.Throws(() => rs.Sample()); } @@ -105,7 +105,7 @@ namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests [Test] public void NullRandomNumberGenerator() { - var uniform = new ContinuousUniform(0.0, 1.0, new MersenneTwister()); + var uniform = new ContinuousUniform(0.0, 1.0, new SystemRandomSource(1)); var rs = new RejectionSampler(x => Math.Pow(x, 1.7)*Math.Pow(1.0 - x, 5.3), x => Double.NegativeInfinity, uniform.Sample); Assert.Throws(() => rs.RandomSource = null); }