Refactored NextNumber into distributions
This commit is contained in:
1 parent
44abcc48b6
commit
0f724991cd
58 files changed
+417
-332
No files matched your search
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new Float.FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.BetaA2B2(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.BetaA2B2(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new Float.FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.BetaA2B5(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.BetaA2B5(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.BetaA5B2(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.BetaA5B2(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.CauchyLorentzX0(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -70,7 +70,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.CauchyLorentzX0(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.CauchyLorentzX0(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -70,7 +70,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.CauchyLorentzX0(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace FastRngTests.Float.Distributions
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
{
|
||||
var value = await rng.NextNumber(dist);
|
||||
var value = await dist.NextNumber();
|
||||
fqa.CountThis(value);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ChiSquareK1(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -70,7 +70,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ChiSquareK1(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace FastRngTests.Float.Distributions
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
{
|
||||
var value = await rng.NextNumber(dist);
|
||||
var value = await dist.NextNumber();
|
||||
fqa.CountThis(value);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ChiSquareK10(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -70,7 +70,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ChiSquareK10(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ChiSquareK4(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ChiSquareK4(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ExponentialLa10(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ExponentialLa10(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ExponentialLa5(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.ExponentialLa5(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await rng.NextNumber(dist));
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.GammaA5B15(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.GammaA5B15(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.InverseExponentialLa10(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.InverseExponentialLa10(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fqa = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fqa.CountThis(await rng.NextNumber(dist));
|
||||
fqa.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fqa.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.InverseExponentialLa5(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.InverseExponentialLa5(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await rng.NextNumber(dist));
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.InverseGammaA3B05(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.InverseGammaA3B05(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await rng.NextNumber(dist));
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.LaplaceB01M0(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.LaplaceB01M0(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await rng.NextNumber(dist));
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.LaplaceB01M05(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.LaplaceB01M05(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await rng.NextNumber(dist));
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.LogNormalS1M0(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.LogNormalS1M0(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace FastRngTests.Float.Distributions
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
{
|
||||
var nextNumber = await rng.NextNumber(dist);
|
||||
var nextNumber = await dist.NextNumber();
|
||||
stats.Push(nextNumber);
|
||||
fra.CountThis(nextNumber);
|
||||
}
|
||||
@@ -48,7 +48,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.NormalS02M05(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -63,7 +63,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.NormalS02M05(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await rng.NextNumber(dist));
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.StudentTNu1(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.StudentTNu1(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
@@ -119,7 +119,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.Uniform(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -134,7 +134,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var samples = new float[1_000];
|
||||
var dist = new FastRng.Float.Distributions.Uniform(rng);
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
@@ -164,7 +164,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await rng.NextNumber(0, 100, dist)]++;
|
||||
distribution[await dist.NextNumber(0, 100)]++;
|
||||
|
||||
for (var n = 0; n < distribution.Length - 1; n++)
|
||||
Assert.That(distribution[n], Is.GreaterThan(0));
|
||||
@@ -180,7 +180,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await rng.NextNumber(0UL, 100, dist)]++;
|
||||
distribution[await dist.NextNumber(0UL, 100)]++;
|
||||
|
||||
for (var n = 0; n < distribution.Length - 1; n++)
|
||||
Assert.That(distribution[n], Is.GreaterThan(0));
|
||||
@@ -196,7 +196,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[(uint)MathF.Floor(await rng.NextNumber(0.0f, 100.0f, dist))]++;
|
||||
distribution[(uint)MathF.Floor(await dist.NextNumber(0.0f, 100.0f))]++;
|
||||
|
||||
for (var n = 0; n < distribution.Length - 1; n++)
|
||||
Assert.That(distribution[n], Is.GreaterThan(0));
|
||||
@@ -211,7 +211,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await rng.NextNumber(0, 100, dist)]++;
|
||||
distribution[await dist.NextNumber(0, 100)]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
|
||||
}
|
||||
@@ -225,7 +225,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await rng.NextNumber(0UL, 100, dist)]++;
|
||||
distribution[await dist.NextNumber(0UL, 100)]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
|
||||
}
|
||||
@@ -239,7 +239,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 1_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[(uint)MathF.Floor(await rng.NextNumber(0.0f, 100.0f, dist))]++;
|
||||
distribution[(uint)MathF.Floor(await dist.NextNumber(0.0f, 100.0f))]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 600));
|
||||
}
|
||||
@@ -253,7 +253,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 100_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await rng.NextNumber(0, 100, dist)]++;
|
||||
distribution[await dist.NextNumber(0, 100)]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
|
||||
}
|
||||
@@ -267,7 +267,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 100_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[await rng.NextNumber(0UL, 100, dist)]++;
|
||||
distribution[await dist.NextNumber(0UL, 100)]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
|
||||
}
|
||||
@@ -281,7 +281,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var distribution = new uint[101];
|
||||
var runs = 100_000_000;
|
||||
for (var n = 0; n < runs; n++)
|
||||
distribution[(uint)MathF.Floor(await rng.NextNumber(0.0f, 100.0f, dist))]++;
|
||||
distribution[(uint)MathF.Floor(await dist.NextNumber(0.0f, 100.0f))]++;
|
||||
|
||||
Assert.That(distribution[..^1].Max() - distribution[..^1].Min(), Is.InRange(0, 6_000));
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var fra = new FrequencyAnalysis();
|
||||
|
||||
for (var n = 0; n < 100_000; n++)
|
||||
fra.CountThis(await rng.NextNumber(dist));
|
||||
fra.CountThis(await dist.NextNumber());
|
||||
|
||||
var result = fra.NormalizeAndPlotEvents(TestContext.WriteLine);
|
||||
|
||||
@@ -52,7 +52,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.WeibullK05La1(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(-1.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(-1.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(-1.0f), "Min out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max out of range");
|
||||
@@ -67,7 +67,7 @@ namespace FastRngTests.Float.Distributions
|
||||
var dist = new FastRng.Float.Distributions.WeibullK05La1(rng);
|
||||
var samples = new float[1_000];
|
||||
for (var n = 0; n < samples.Length; n++)
|
||||
samples[n] = await rng.NextNumber(0.0f, 1.0f, dist);
|
||||
samples[n] = await dist.NextNumber(0.0f, 1.0f);
|
||||
|
||||
Assert.That(samples.Min(), Is.GreaterThanOrEqualTo(0.0f), "Min is out of range");
|
||||
Assert.That(samples.Max(), Is.LessThanOrEqualTo(1.0f), "Max is out of range");
|
||||
|
||||
Reference in new issue
Block a user