diff --git a/src/Numerics/Numerics.csproj b/src/Numerics/Numerics.csproj
index 3857f491..6dc74557 100644
--- a/src/Numerics/Numerics.csproj
+++ b/src/Numerics/Numerics.csproj
@@ -353,6 +353,7 @@
+
diff --git a/src/Numerics/Random/Xorshift.cs b/src/Numerics/Random/Xorshift.cs
new file mode 100644
index 00000000..8e56a4fd
--- /dev/null
+++ b/src/Numerics/Random/Xorshift.cs
@@ -0,0 +1,146 @@
+//
+// Math.NET Numerics, part of the Math.NET Project
+// http://numerics.mathdotnet.com
+// http://github.com/mathnet/mathnet-numerics
+// http://mathnetnumerics.codeplex.com
+//
+// Copyright (c) 2009-2010 Math.NET
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+namespace MathNet.Numerics.Random
+{
+ using System;
+
+ ///
+ /// Xor-shift pseudo random number generator (RNG) specified in Marsaglia, George. (2003). Xorshift RNGs.
+ /// http://www.jstatsoft.org/v08/i14/xorshift.pdf
+ ///
+ public class Xorshift : AbstractRandomNumberGenerator
+ {
+ ///
+ /// Initializes a new instance of the class using
+ /// the current time as the seed.
+ ///
+ /// If the seed value is zero, it is set to one. Uses the
+ /// value of to
+ /// set whether the instance is thread safe.
+ public Xorshift() : this((int)DateTime.Now.Ticks)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class using
+ /// the current time as the seed.
+ ///
+ /// if set to true , the class is thread safe.
+ public Xorshift(bool threadSafe) : this((int)DateTime.Now.Ticks, threadSafe)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The seed value.
+ /// If the seed value is zero, it is set to one. Uses the
+ /// value of to
+ /// set whether the instance is thread safe.
+ public Xorshift(int seed) : this(seed, Control.ThreadSafeRandomNumberGenerators)
+ {
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The seed value.
+ /// if set to true, the class is thread safe.
+ public Xorshift(int seed, bool threadSafe) : base(threadSafe)
+ {
+ if (seed == 0)
+ {
+ seed = 1;
+ }
+
+ _x = (uint)seed;
+ _y = YSeed;
+ _z = ZSeed;
+ _w = WSeed;
+ }
+
+ ///
+ /// Y seed is 423864282.
+ ///
+ private const uint YSeed = 423864282;
+
+ ///
+ /// Y seed is 643534723.
+ ///
+ private const uint ZSeed = 643534723;
+
+ ///
+ /// W seed is 84452734.
+ ///
+ private const uint WSeed = 84452734;
+
+ ///
+ /// The multiplier to compute a double-precision floating point number [0, 1)
+ ///
+ private const double IntToDoubleMultiplier = 1.0 / (int.MaxValue + 1.0);
+
+ ///
+ /// Seed or last but three unsigned random number.
+ ///
+ private uint _x;
+
+ ///
+ /// Last but two unsigned random number.
+ ///
+ private uint _y;
+
+ ///
+ /// Last but one unsigned random number.
+ ///
+ private uint _z;
+
+ ///
+ /// Last generated unsigned random number.
+ ///
+ private uint _w;
+
+ ///
+ /// Returns a random number between 0.0 and 1.0.
+ ///
+ ///
+ /// A double-precision floating point number greater than or equal to 0.0, and less than 1.0.
+ ///
+ protected override double DoSample()
+ {
+ var t = _x ^ (_x << 11);
+ _x = _y;
+ _y = _z;
+ _z = _w;
+ _w = (_w ^ (_w >> 19)) ^ (t ^ (t >> 8));
+
+ return (int)(_w >> 1) * IntToDoubleMultiplier;
+ }
+ }
+}
diff --git a/src/Silverlight/Silverlight.csproj b/src/Silverlight/Silverlight.csproj
index 9bce5c4e..7d901363 100644
--- a/src/Silverlight/Silverlight.csproj
+++ b/src/Silverlight/Silverlight.csproj
@@ -773,6 +773,9 @@
Random\WH2006.cs
+
+ Random\Xorshift.cs
+
Sampling\Sample.Chebyshev.cs
diff --git a/src/UnitTests/DistributionTests/CommonDistributionTests.cs b/src/UnitTests/DistributionTests/CommonDistributionTests.cs
index c39799d8..0b4338d5 100644
--- a/src/UnitTests/DistributionTests/CommonDistributionTests.cs
+++ b/src/UnitTests/DistributionTests/CommonDistributionTests.cs
@@ -34,7 +34,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests
using System.Linq;
using System.Collections.Generic;
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
using Statistics;
using Distributions;
diff --git a/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs b/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs
index f4f43c9b..81d0058f 100644
--- a/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs
+++ b/src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs
@@ -31,13 +31,9 @@
namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate
{
using System;
- using System.Linq;
- using LinearAlgebra.Generic;
using MbUnit.Framework;
- using Random;
using Distributions;
using MathNet.Numerics.LinearAlgebra.Double;
- using MathNet.Numerics.LinearAlgebra.Double.Factorization;
using MathNet.Numerics.UnitTests.LinearAlgebraTests.Double;
[TestFixture]
diff --git a/src/UnitTests/DistributionTests/Multivariate/NormalGammaTests.cs b/src/UnitTests/DistributionTests/Multivariate/NormalGammaTests.cs
index 71b4587b..603d62aa 100644
--- a/src/UnitTests/DistributionTests/Multivariate/NormalGammaTests.cs
+++ b/src/UnitTests/DistributionTests/Multivariate/NormalGammaTests.cs
@@ -33,7 +33,7 @@ namespace MathNet.Numerics.UnitTests.DistributionTests.Multivariate
using System;
using System.Linq;
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
using Distributions;
[TestFixture]
diff --git a/src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs b/src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs
index 2433497b..5ae81cb7 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs
@@ -72,7 +72,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var matrixA = new DenseMatrix(row, col);
for (var i = 0; i < row; i++)
@@ -92,7 +92,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var matrixA = new DenseMatrix(order);
for (var i = 0; i < order; i++)
@@ -112,7 +112,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var v = new DenseVector(order);
for (var i = 0; i < order; i++)
@@ -129,7 +129,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var matrixA = new UserDefinedMatrix(row, col);
for (var i = 0; i < row; i++)
@@ -149,7 +149,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var matrixA = new UserDefinedMatrix(order);
for (var i = 0; i < order; i++)
@@ -169,7 +169,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var v = new UserDefinedVector(order);
for (var i = 0; i < order; i++)
diff --git a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs
index 98c34c6e..9514dd61 100644
--- a/src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs
+++ b/src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs
@@ -72,7 +72,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var matrixA = new DenseMatrix(row, col);
for (var i = 0; i < row; i++)
@@ -92,7 +92,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var matrixA = new DenseMatrix(order);
for (var i = 0; i < order; i++)
@@ -112,7 +112,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var v = new DenseVector(order);
for (var i = 0; i < order; i++)
@@ -129,7 +129,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var matrixA = new UserDefinedMatrix(row, col);
for (var i = 0; i < row; i++)
@@ -149,7 +149,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var matrixA = new UserDefinedMatrix(order);
for (var i = 0; i < order; i++)
@@ -169,7 +169,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Complex32
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal
{
- RandomSource = new Random.MersenneTwister(1)
+ RandomSource = new Numerics.Random.MersenneTwister(1)
};
var v = new UserDefinedVector(order);
for (var i = 0; i < order; i++)
diff --git a/src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs b/src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs
index 5ad77e85..d1cac027 100644
--- a/src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs
+++ b/src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs
@@ -70,7 +70,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var matrixA = new DenseMatrix(row, col);
for (int i = 0; i < row; i++)
{
@@ -88,7 +88,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var matrixA = new DenseMatrix(order);
for (int i = 0; i < order; i++)
{
@@ -106,7 +106,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var v = new DenseVector(order);
for (int i = 0; i < order; i++)
{
@@ -121,7 +121,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var matrixA = new UserDefinedMatrix(row, col);
for (int i = 0; i < row; i++)
{
@@ -139,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var matrixA = new UserDefinedMatrix(order);
for (int i = 0; i < order; i++)
{
@@ -157,7 +157,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Double
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var v = new UserDefinedVector(order);
for (int i = 0; i < order; i++)
{
diff --git a/src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs b/src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs
index 682f35a0..6279150b 100644
--- a/src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs
+++ b/src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs
@@ -70,7 +70,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var matrixA = new DenseMatrix(row, col);
for (int i = 0; i < row; i++)
{
@@ -88,7 +88,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var matrixA = new DenseMatrix(order);
for (int i = 0; i < order; i++)
{
@@ -106,7 +106,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var v = new DenseVector(order);
for (int i = 0; i < order; i++)
{
@@ -121,7 +121,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var matrixA = new UserDefinedMatrix(row, col);
for (int i = 0; i < row; i++)
{
@@ -139,7 +139,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var matrixA = new UserDefinedMatrix(order);
for (int i = 0; i < order; i++)
{
@@ -157,7 +157,7 @@ namespace MathNet.Numerics.UnitTests.LinearAlgebraTests.Single
{
// Fill a matrix with standard random numbers.
var normal = new Distributions.Normal();
- normal.RandomSource = new Random.MersenneTwister(1);
+ normal.RandomSource = new Numerics.Random.MersenneTwister(1);
var v = new UserDefinedVector(order);
for (int i = 0; i < order; i++)
{
diff --git a/src/UnitTests/Random/Mcg31m1Tests.cs b/src/UnitTests/Random/Mcg31m1Tests.cs
index f297031a..5b6c9997 100644
--- a/src/UnitTests/Random/Mcg31m1Tests.cs
+++ b/src/UnitTests/Random/Mcg31m1Tests.cs
@@ -28,11 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
- using Random;
-
+ using Numerics.Random;
+
[TestFixture]
public class Mcg31m1Tests : RandomTests
{
diff --git a/src/UnitTests/Random/Mcg59Tests.cs b/src/UnitTests/Random/Mcg59Tests.cs
index a99f6461..a6ff2f12 100644
--- a/src/UnitTests/Random/Mcg59Tests.cs
+++ b/src/UnitTests/Random/Mcg59Tests.cs
@@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
[TestFixture]
public class Mcg59Tests : RandomTests
diff --git a/src/UnitTests/Random/MersenneTwisterTests.cs b/src/UnitTests/Random/MersenneTwisterTests.cs
index 368eb6e4..e838f4cf 100644
--- a/src/UnitTests/Random/MersenneTwisterTests.cs
+++ b/src/UnitTests/Random/MersenneTwisterTests.cs
@@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
[TestFixture]
public class MersenneTwisterTests : RandomTests
diff --git a/src/UnitTests/Random/Mrg32k3aTests.cs b/src/UnitTests/Random/Mrg32k3aTests.cs
index 5064e5ec..04dacb9b 100644
--- a/src/UnitTests/Random/Mrg32k3aTests.cs
+++ b/src/UnitTests/Random/Mrg32k3aTests.cs
@@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
[TestFixture]
public class Mrg32k3aTests : RandomTests
diff --git a/src/UnitTests/Random/RandomTests.cs b/src/UnitTests/Random/RandomTests.cs
index 879f233f..537a1add 100644
--- a/src/UnitTests/Random/RandomTests.cs
+++ b/src/UnitTests/Random/RandomTests.cs
@@ -28,13 +28,13 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using System;
using System.Threading;
using MbUnit.Framework;
- public abstract class RandomTests
+ public abstract class RandomTests
{
private const int _n = 10000;
private readonly Type _randomType;
diff --git a/src/UnitTests/Random/SystemCryptoTests.cs b/src/UnitTests/Random/SystemCryptoTests.cs
index 72cc67bd..711c2e4f 100644
--- a/src/UnitTests/Random/SystemCryptoTests.cs
+++ b/src/UnitTests/Random/SystemCryptoTests.cs
@@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
[TestFixture]
public class SystemCryptoRandomNumberGeneratorTests : RandomTests
diff --git a/src/UnitTests/Random/SystemRandomExtensionTests.cs b/src/UnitTests/Random/SystemRandomExtensionTests.cs
index 1ed040d1..093f5929 100644
--- a/src/UnitTests/Random/SystemRandomExtensionTests.cs
+++ b/src/UnitTests/Random/SystemRandomExtensionTests.cs
@@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
[TestFixture]
public class SystemRandomExtensionTests
diff --git a/src/UnitTests/Random/WH1982Tests.cs b/src/UnitTests/Random/WH1982Tests.cs
index cdd492ac..27c873eb 100644
--- a/src/UnitTests/Random/WH1982Tests.cs
+++ b/src/UnitTests/Random/WH1982Tests.cs
@@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
[TestFixture]
public class WH1982Tests : RandomTests
diff --git a/src/UnitTests/Random/WH2006Tests.cs b/src/UnitTests/Random/WH2006Tests.cs
index 0f8ff48d..572ac9e5 100644
--- a/src/UnitTests/Random/WH2006Tests.cs
+++ b/src/UnitTests/Random/WH2006Tests.cs
@@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
//
-namespace MathNet.Numerics.UnitTests.RandomTests
+namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
- using Random;
+ using Numerics.Random;
[TestFixture]
public class WH2006Tests : RandomTests
diff --git a/src/UnitTests/Random/XorshiftTests.cs b/src/UnitTests/Random/XorshiftTests.cs
new file mode 100644
index 00000000..bcda3fdb
--- /dev/null
+++ b/src/UnitTests/Random/XorshiftTests.cs
@@ -0,0 +1,44 @@
+//
+// Math.NET Numerics, part of the Math.NET Project
+// http://numerics.mathdotnet.com
+// http://github.com/mathnet/mathnet-numerics
+// http://mathnetnumerics.codeplex.com
+//
+// Copyright (c) 2009-2010 Math.NET
+//
+// Permission is hereby granted, free of charge, to any person
+// obtaining a copy of this software and associated documentation
+// files (the "Software"), to deal in the Software without
+// restriction, including without limitation the rights to use,
+// copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following
+// conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+// OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+// OTHER DEALINGS IN THE SOFTWARE.
+//
+
+namespace MathNet.Numerics.UnitTests.Random
+{
+ using MbUnit.Framework;
+ using Numerics.Random;
+
+ [TestFixture]
+ public class XorshiftTests : RandomTests
+ {
+ public XorshiftTests()
+ : base(typeof(Xorshift))
+ {
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/UnitTests/SortingTests.cs b/src/UnitTests/SortingTests.cs
index e9945022..1d4bd7be 100644
--- a/src/UnitTests/SortingTests.cs
+++ b/src/UnitTests/SortingTests.cs
@@ -42,7 +42,7 @@ namespace MathNet.Numerics.UnitTests
public void TestRandomTupleArraySorting()
{
const int Len = 0x1 << 10;
- var random = new Random();
+ var random = new System.Random();
int[] keys = new int[Len];
int[] items = new int[Len];
@@ -73,7 +73,7 @@ namespace MathNet.Numerics.UnitTests
public void TestRandomTupleListSorting()
{
const int Len = 0x1 << 10;
- var random = new Random();
+ var random = new System.Random();
List keys = new List(Len);
List items = new List(Len);
@@ -105,7 +105,7 @@ namespace MathNet.Numerics.UnitTests
public void TestRandomTripleArraySorting()
{
const int Len = 0x1 << 10;
- var random = new Random();
+ var random = new System.Random();
int[] keys = new int[Len];
int[] items1 = new int[Len];
@@ -139,7 +139,7 @@ namespace MathNet.Numerics.UnitTests
public void TestAppliedListSorting()
{
const int Len = 0x1 << 10;
- var random = new Random();
+ var random = new System.Random();
List list = new List();
diff --git a/src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs b/src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs
index b9ebb431..ab5854dd 100644
--- a/src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs
+++ b/src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs
@@ -31,7 +31,7 @@
namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests
{
using System;
- using Random;
+ using Numerics.Random;
using Distributions;
using Statistics.Mcmc;
using MbUnit.Framework;
diff --git a/src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs b/src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs
index 9ee1453c..9a80e875 100644
--- a/src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs
+++ b/src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs
@@ -31,7 +31,7 @@
namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests
{
using System;
- using Random;
+ using Numerics.Random;
using Distributions;
using Statistics.Mcmc;
using MbUnit.Framework;
diff --git a/src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs b/src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs
index b7609eb2..d8cedf01 100644
--- a/src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs
+++ b/src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs
@@ -31,7 +31,7 @@
namespace MathNet.Numerics.UnitTests.StatisticsTests.McmcTests
{
using System;
- using Random;
+ using Numerics.Random;
using Distributions;
using Statistics.Mcmc;
using MbUnit.Framework;
diff --git a/src/UnitTests/UnitTests.csproj b/src/UnitTests/UnitTests.csproj
index 97b072ec..ca2bb1a2 100644
--- a/src/UnitTests/UnitTests.csproj
+++ b/src/UnitTests/UnitTests.csproj
@@ -321,6 +321,7 @@
+