Browse Source

merged andriy's XOR RNG

la-knuth
Marcus Cuda 16 years ago
parent
commit
84762f7109
  1. 1
      src/Numerics/Numerics.csproj
  2. 146
      src/Numerics/Random/Xorshift.cs
  3. 3
      src/Silverlight/Silverlight.csproj
  4. 2
      src/UnitTests/DistributionTests/CommonDistributionTests.cs
  5. 4
      src/UnitTests/DistributionTests/Multivariate/MatrixNormalTests.cs
  6. 2
      src/UnitTests/DistributionTests/Multivariate/NormalGammaTests.cs
  7. 12
      src/UnitTests/LinearAlgebraTests/Complex/MatrixLoader.cs
  8. 12
      src/UnitTests/LinearAlgebraTests/Complex32/MatrixLoader.cs
  9. 12
      src/UnitTests/LinearAlgebraTests/Double/MatrixLoader.cs
  10. 12
      src/UnitTests/LinearAlgebraTests/Single/MatrixLoader.cs
  11. 6
      src/UnitTests/Random/Mcg31m1Tests.cs
  12. 4
      src/UnitTests/Random/Mcg59Tests.cs
  13. 4
      src/UnitTests/Random/MersenneTwisterTests.cs
  14. 4
      src/UnitTests/Random/Mrg32k3aTests.cs
  15. 4
      src/UnitTests/Random/RandomTests.cs
  16. 4
      src/UnitTests/Random/SystemCryptoTests.cs
  17. 4
      src/UnitTests/Random/SystemRandomExtensionTests.cs
  18. 4
      src/UnitTests/Random/WH1982Tests.cs
  19. 4
      src/UnitTests/Random/WH2006Tests.cs
  20. 44
      src/UnitTests/Random/XorshiftTests.cs
  21. 8
      src/UnitTests/SortingTests.cs
  22. 2
      src/UnitTests/StatisticsTests/MCMCTests/MetropolisHastingsSamplerTests.cs
  23. 2
      src/UnitTests/StatisticsTests/MCMCTests/MetropolisSamplerTests.cs
  24. 2
      src/UnitTests/StatisticsTests/MCMCTests/RejectionSamplerTests.cs
  25. 1
      src/UnitTests/UnitTests.csproj

1
src/Numerics/Numerics.csproj

@ -353,6 +353,7 @@
<Compile Include="Random\SystemRandomExtensions.cs" />
<Compile Include="Random\WH1982.cs" />
<Compile Include="Random\WH2006.cs" />
<Compile Include="Random\Xorshift.cs" />
<Compile Include="Sampling\Sample.Random.cs" />
<Compile Include="Sampling\Sample.Chebyshev.cs" />
<Compile Include="Sampling\Sample.Equidistant.cs" />

146
src/Numerics/Random/Xorshift.cs

@ -0,0 +1,146 @@
// <copyright file="Xorshift.cs" company="Math.NET">
// 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.
// </copyright>
namespace MathNet.Numerics.Random
{
using System;
/// <summary>
/// Xor-shift pseudo random number generator (RNG) specified in Marsaglia, George. (2003). Xorshift RNGs.
/// http://www.jstatsoft.org/v08/i14/xorshift.pdf
/// </summary>
public class Xorshift : AbstractRandomNumberGenerator
{
/// <summary>
/// Initializes a new instance of the <see cref="Xorshift"/> class using
/// the current time as the seed.
/// </summary>
/// <remarks>If the seed value is zero, it is set to one. Uses the
/// value of <see cref="Control.ThreadSafeRandomNumberGenerators"/> to
/// set whether the instance is thread safe.</remarks>
public Xorshift() : this((int)DateTime.Now.Ticks)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="Xorshift"/> class using
/// the current time as the seed.
/// </summary>
/// <param name="threadSafe">if set to <c>true</c> , the class is thread safe.</param>
public Xorshift(bool threadSafe) : this((int)DateTime.Now.Ticks, threadSafe)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="Xorshift"/> class.
/// </summary>
/// <param name="seed">The seed value.</param>
/// <remarks>If the seed value is zero, it is set to one. Uses the
/// value of <see cref="Control.ThreadSafeRandomNumberGenerators"/> to
/// set whether the instance is thread safe.</remarks>
public Xorshift(int seed) : this(seed, Control.ThreadSafeRandomNumberGenerators)
{
}
/// <summary>
/// Initializes a new instance of the <see cref="Xorshift"/> class.
/// </summary>
/// <param name="seed">The seed value.</param>
/// <param name="threadSafe">if set to <c>true</c>, the class is thread safe.</param>
public Xorshift(int seed, bool threadSafe) : base(threadSafe)
{
if (seed == 0)
{
seed = 1;
}
_x = (uint)seed;
_y = YSeed;
_z = ZSeed;
_w = WSeed;
}
/// <summary>
/// Y seed is 423864282.
/// </summary>
private const uint YSeed = 423864282;
/// <summary>
/// Y seed is 643534723.
/// </summary>
private const uint ZSeed = 643534723;
/// <summary>
/// W seed is 84452734.
/// </summary>
private const uint WSeed = 84452734;
/// <summary>
/// The multiplier to compute a double-precision floating point number [0, 1)
/// </summary>
private const double IntToDoubleMultiplier = 1.0 / (int.MaxValue + 1.0);
/// <summary>
/// Seed or last but three unsigned random number.
/// </summary>
private uint _x;
/// <summary>
/// Last but two unsigned random number.
/// </summary>
private uint _y;
/// <summary>
/// Last but one unsigned random number.
/// </summary>
private uint _z;
/// <summary>
/// Last generated unsigned random number.
/// </summary>
private uint _w;
/// <summary>
/// Returns a random number between 0.0 and 1.0.
/// </summary>
/// <returns>
/// A double-precision floating point number greater than or equal to 0.0, and less than 1.0.
/// </returns>
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;
}
}
}

3
src/Silverlight/Silverlight.csproj

@ -773,6 +773,9 @@
<Compile Include="..\Numerics\Random\WH2006.cs">
<Link>Random\WH2006.cs</Link>
</Compile>
<Compile Include="..\Numerics\Random\Xorshift.cs">
<Link>Random\Xorshift.cs</Link>
</Compile>
<Compile Include="..\Numerics\Sampling\Sample.Chebyshev.cs">
<Link>Sampling\Sample.Chebyshev.cs</Link>
</Compile>

2
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;

4
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]

2
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]

12
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++)

12
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++)

12
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++)
{

12
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++)
{

6
src/UnitTests/Random/Mcg31m1Tests.cs

@ -28,11 +28,11 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics.UnitTests.RandomTests
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Random;
using Numerics.Random;
[TestFixture]
public class Mcg31m1Tests : RandomTests
{

4
src/UnitTests/Random/Mcg59Tests.cs

@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics.UnitTests.RandomTests
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Random;
using Numerics.Random;
[TestFixture]
public class Mcg59Tests : RandomTests

4
src/UnitTests/Random/MersenneTwisterTests.cs

@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics.UnitTests.RandomTests
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Random;
using Numerics.Random;
[TestFixture]
public class MersenneTwisterTests : RandomTests

4
src/UnitTests/Random/Mrg32k3aTests.cs

@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics.UnitTests.RandomTests
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Random;
using Numerics.Random;
[TestFixture]
public class Mrg32k3aTests : RandomTests

4
src/UnitTests/Random/RandomTests.cs

@ -28,13 +28,13 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
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;

4
src/UnitTests/Random/SystemCryptoTests.cs

@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics.UnitTests.RandomTests
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Random;
using Numerics.Random;
[TestFixture]
public class SystemCryptoRandomNumberGeneratorTests : RandomTests

4
src/UnitTests/Random/SystemRandomExtensionTests.cs

@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics.UnitTests.RandomTests
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Random;
using Numerics.Random;
[TestFixture]
public class SystemRandomExtensionTests

4
src/UnitTests/Random/WH1982Tests.cs

@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics.UnitTests.RandomTests
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Random;
using Numerics.Random;
[TestFixture]
public class WH1982Tests : RandomTests

4
src/UnitTests/Random/WH2006Tests.cs

@ -28,10 +28,10 @@
// OTHER DEALINGS IN THE SOFTWARE.
// </copyright>
namespace MathNet.Numerics.UnitTests.RandomTests
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Random;
using Numerics.Random;
[TestFixture]
public class WH2006Tests : RandomTests

44
src/UnitTests/Random/XorshiftTests.cs

@ -0,0 +1,44 @@
// <copyright file="XorshiftTests.cs" company="Math.NET">
// 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.
// </copyright>
namespace MathNet.Numerics.UnitTests.Random
{
using MbUnit.Framework;
using Numerics.Random;
[TestFixture]
public class XorshiftTests : RandomTests
{
public XorshiftTests()
: base(typeof(Xorshift))
{
}
}
}

8
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<int> keys = new List<int>(Len);
List<int> items = new List<int>(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<int> list = new List<int>();

2
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;

2
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;

2
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;

1
src/UnitTests/UnitTests.csproj

@ -321,6 +321,7 @@
<Compile Include="NumberTheoryTests\IntegerTheoryTest.cs" />
<Compile Include="PrecisionTest.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Random\XorshiftTests.cs" />
<Compile Include="Random\Mcg31m1Tests.cs" />
<Compile Include="Random\Mcg59Tests.cs" />
<Compile Include="Random\MersenneTwisterTests.cs" />

Loading…
Cancel
Save