diff --git a/Examples.sln b/Examples.sln
new file mode 100644
index 00000000..a4d14840
--- /dev/null
+++ b/Examples.sln
@@ -0,0 +1,49 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.30501.0
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Examples", "src\Examples\Examples.csproj", "{8239A6FF-1EF3-4DA4-A860-95C392DD6899}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharpExamples", "src\FSharpExamples\FSharpExamples.fsproj", "{BC81EA37-8EE6-4BF9-B8A9-B30497AEF8B1}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Numerics", "src\Numerics\Numerics.csproj", "{B7CAE5F4-A23F-4438-B5BE-41226618B695}"
+EndProject
+Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp", "src\FSharp\FSharp.fsproj", "{37E8E802-A354-4114-BFC1-6E1357DA605B}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ Release-Signed|Any CPU = Release-Signed|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {8239A6FF-1EF3-4DA4-A860-95C392DD6899}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {8239A6FF-1EF3-4DA4-A860-95C392DD6899}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {8239A6FF-1EF3-4DA4-A860-95C392DD6899}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {8239A6FF-1EF3-4DA4-A860-95C392DD6899}.Release|Any CPU.Build.0 = Release|Any CPU
+ {8239A6FF-1EF3-4DA4-A860-95C392DD6899}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU
+ {8239A6FF-1EF3-4DA4-A860-95C392DD6899}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU
+ {BC81EA37-8EE6-4BF9-B8A9-B30497AEF8B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BC81EA37-8EE6-4BF9-B8A9-B30497AEF8B1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BC81EA37-8EE6-4BF9-B8A9-B30497AEF8B1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BC81EA37-8EE6-4BF9-B8A9-B30497AEF8B1}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BC81EA37-8EE6-4BF9-B8A9-B30497AEF8B1}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU
+ {BC81EA37-8EE6-4BF9-B8A9-B30497AEF8B1}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU
+ {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU
+ {B7CAE5F4-A23F-4438-B5BE-41226618B695}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU
+ {37E8E802-A354-4114-BFC1-6E1357DA605B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {37E8E802-A354-4114-BFC1-6E1357DA605B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {37E8E802-A354-4114-BFC1-6E1357DA605B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {37E8E802-A354-4114-BFC1-6E1357DA605B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {37E8E802-A354-4114-BFC1-6E1357DA605B}.Release-Signed|Any CPU.ActiveCfg = Release-Signed|Any CPU
+ {37E8E802-A354-4114-BFC1-6E1357DA605B}.Release-Signed|Any CPU.Build.0 = Release-Signed|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/RELEASENOTES.md b/RELEASENOTES.md
index fcd77ae0..509768fb 100644
--- a/RELEASENOTES.md
+++ b/RELEASENOTES.md
@@ -1,4 +1,4 @@
-### 3.0.1 - 2014-06-22
+### 3.0.1 - 2014-06-24
* Patch release, fixing a bug in new Matrix.ToMatrixString and Vector.ToVectorString routines.
### 3.0.0 - 2014-06-21
diff --git a/build.fsx b/build.fsx
index 37bdaf2a..cf20379f 100644
--- a/build.fsx
+++ b/build.fsx
@@ -533,6 +533,11 @@ Target "PublishTag" (fun _ -> publishReleaseTag "Math.NET Numerics" "" packageVe
Target "NativePublishTag" (fun _ -> publishReleaseTag "Math.NET Numerics Native Providers" "native-" nativePackageVersion nativeReleaseNotes)
Target "DataPublishTag" (fun _ -> publishReleaseTag "Math.NET Numerics Data Extensions" "data-" dataPackageVersion dataReleaseNotes)
+Target "PublishMirrors" (fun _ ->
+ let repo = "../mirror-numerics"
+ Git.CommandHelper.runSimpleGitCommand repo "remote update" |> printfn "%s"
+ Git.CommandHelper.runSimpleGitCommand repo "push mirrors" |> printfn "%s")
+
Target "PublishDocs" (fun _ ->
let repo = "../mathnet-websites"
Git.Branches.pull repo "origin" "master"
diff --git a/src/Examples/ConsoleHelper.cs b/src/Examples/ConsoleHelper.cs
index ac21c57f..0cd921fd 100644
--- a/src/Examples/ConsoleHelper.cs
+++ b/src/Examples/ConsoleHelper.cs
@@ -25,20 +25,22 @@
//
using System;
+using System.Collections.Generic;
+using System.Linq;
using MathNet.Numerics.Statistics;
namespace Examples
{
///
- /// Helper fucntions to output into Console window
+ /// Helper functions to output into Console window
///
public static class ConsoleHelper
{
///
- /// Disoplay histogram from the array
+ /// Display histogram from the array
///
/// Source array
- public static void DisplayHistogram(double[] data)
+ public static void DisplayHistogram(IEnumerable data)
{
var blockSymbol = Convert.ToChar(9608);
@@ -48,7 +50,7 @@ namespace Examples
var histogram = new Histogram(data, rowMaxLength);
- // Find the absolute peak
+ // Find the absolute peak
var maxBucketCount = 0.0;
for (var i = 0; i < histogram.BucketCount; i++)
{
@@ -105,5 +107,14 @@ namespace Examples
Console.WriteLine();
}
+
+ ///
+ /// Display histogram from the array
+ ///
+ /// Source array
+ public static void DisplayHistogram(IEnumerable data)
+ {
+ DisplayHistogram(data.Select(x => (double)x));
+ }
}
}
diff --git a/src/Examples/ContinuousDistributions/BetaDistribution.cs b/src/Examples/ContinuousDistributions/BetaDistribution.cs
index cd4c66c5..90763a96 100644
--- a/src/Examples/ContinuousDistributions/BetaDistribution.cs
+++ b/src/Examples/ContinuousDistributions/BetaDistribution.cs
@@ -118,47 +118,25 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Beta(5, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Beta(5, 1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = beta.Sample();
- }
-
+ Beta.Samples(data, 5, 1);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Beta(2, 5) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Beta(2, 5) distribution and display histogram");
- beta.A = 2;
- beta.B = 5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = beta.Sample();
- }
-
+ Beta.Samples(data, 2, 5);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Beta distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Beta(0.5, 0.5) distribution and display histogram");
- beta.A = 0.5;
- beta.B = 0.5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = beta.Sample();
- }
-
+ Beta.Samples(data, 0.5, 0.5);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 7. Generate 100000 samples of the Beta distribution and display histogram
Console.WriteLine(@"7. Generate 100000 samples of the Beta(2, 2) distribution and display histogram");
- beta.A = 2;
- beta.B = 2;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = beta.Sample();
- }
-
+ Beta.Samples(data, 2, 2);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/ChiDistribution.cs b/src/Examples/ContinuousDistributions/ChiDistribution.cs
index 0abf3bca..9186fcc2 100644
--- a/src/Examples/ContinuousDistributions/ChiDistribution.cs
+++ b/src/Examples/ContinuousDistributions/ChiDistribution.cs
@@ -118,33 +118,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Chi(1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Chi(1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = chi.Sample();
- }
-
+ Chi.Samples(data, 1);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Chi(2) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Chi(2) distribution and display histogram");
- chi.DegreesOfFreedom = 2;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = chi.Sample();
- }
-
+ Chi.Samples(data, 2);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Chi(5) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Chi(5) distribution and display histogram");
- chi.DegreesOfFreedom = 5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = chi.Sample();
- }
-
+ Chi.Samples(data, 5);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/ChiSquareDistribution.cs b/src/Examples/ContinuousDistributions/ChiSquareDistribution.cs
index 1191e2a5..0d64036b 100644
--- a/src/Examples/ContinuousDistributions/ChiSquareDistribution.cs
+++ b/src/Examples/ContinuousDistributions/ChiSquareDistribution.cs
@@ -121,33 +121,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the ChiSquare(1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the ChiSquare(1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = chiSquare.Sample();
- }
-
+ ChiSquared.Samples(data, 1);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the ChiSquare(4) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the ChiSquare(4) distribution and display histogram");
- chiSquare.DegreesOfFreedom = 4;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = chiSquare.Sample();
- }
-
+ ChiSquared.Samples(data, 4);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the ChiSquare(8) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the ChiSquare(8) distribution and display histogram");
- chiSquare.DegreesOfFreedom = 8;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = chiSquare.Sample();
- }
-
+ ChiSquared.Samples(data, 8);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/ContinuousUniformDistribution.cs b/src/Examples/ContinuousDistributions/ContinuousUniformDistribution.cs
index cdd71e7c..8bb88f50 100644
--- a/src/Examples/ContinuousDistributions/ContinuousUniformDistribution.cs
+++ b/src/Examples/ContinuousDistributions/ContinuousUniformDistribution.cs
@@ -121,23 +121,13 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the ContinuousUniform(0, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the ContinuousUniform(0, 1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = continuousUniform.Sample();
- }
-
+ ContinuousUniform.Samples(data, 0.0, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the ContinuousUniform(2, 10) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the ContinuousUniform(2, 10) distribution and display histogram");
- continuousUniform.UpperBound = 10;
- continuousUniform.LowerBound = 2;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = continuousUniform.Sample();
- }
-
+ ContinuousUniform.Samples(data, 2, 10);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/ErlangDistribution.cs b/src/Examples/ContinuousDistributions/ErlangDistribution.cs
index fd6d8e3a..8c48eec9 100644
--- a/src/Examples/ContinuousDistributions/ErlangDistribution.cs
+++ b/src/Examples/ContinuousDistributions/ErlangDistribution.cs
@@ -118,34 +118,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Erlang(1, 2.0) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Erlang(1, 2.0) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = erlang.Sample();
- }
-
+ Erlang.Samples(data, 1, 2.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Erlang(3, 2.0) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Erlang(3, 2.0) distribution and display histogram");
- erlang.Shape = 3;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = erlang.Sample();
- }
-
+ Erlang.Samples(data, 3, 2.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Erlang(9, 0.5) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Erlang(9, 0.5) distribution and display histogram");
- erlang.Shape = 9;
- erlang.Scale = 0.5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = erlang.Sample();
- }
-
+ Erlang.Samples(data, 9, 0.5);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/ExponentialDistribution.cs b/src/Examples/ContinuousDistributions/ExponentialDistribution.cs
index e8522103..b4fb9b5d 100644
--- a/src/Examples/ContinuousDistributions/ExponentialDistribution.cs
+++ b/src/Examples/ContinuousDistributions/ExponentialDistribution.cs
@@ -121,33 +121,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Exponential(1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Exponential(1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = exponential.Sample();
- }
-
+ Exponential.Samples(data, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Exponential(9) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Exponential(9) distribution and display histogram");
- exponential.Rate = 9;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = exponential.Sample();
- }
-
+ Exponential.Samples(data, 9.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Exponential(0.01) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Exponential(0.01) distribution and display histogram");
- exponential.Rate = 0.01;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = exponential.Sample();
- }
-
+ Exponential.Samples(data, 0.01);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/FisherSnedecorDistribution.cs b/src/Examples/ContinuousDistributions/FisherSnedecorDistribution.cs
index b600f864..52dd4f02 100644
--- a/src/Examples/ContinuousDistributions/FisherSnedecorDistribution.cs
+++ b/src/Examples/ContinuousDistributions/FisherSnedecorDistribution.cs
@@ -115,35 +115,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the FisherSnedecor(50, 20) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the FisherSnedecor(50, 20) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = fisherSnedecor.Sample();
- }
-
+ FisherSnedecor.Samples(data, 50, 20);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the FisherSnedecor(20, 10) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the FisherSnedecor(20, 10) distribution and display histogram");
- fisherSnedecor.DegreesOfFreedom1 = 20;
- fisherSnedecor.DegreesOfFreedom2 = 10;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = fisherSnedecor.Sample();
- }
-
+ FisherSnedecor.Samples(data, 20, 10);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the FisherSnedecor(100, 100) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the FisherSnedecor(100, 100) distribution and display histogram");
- fisherSnedecor.DegreesOfFreedom1 = 100;
- fisherSnedecor.DegreesOfFreedom2 = 100;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = fisherSnedecor.Sample();
- }
-
+ FisherSnedecor.Samples(data, 100, 100);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/GammaDistribution.cs b/src/Examples/ContinuousDistributions/GammaDistribution.cs
index 7c335262..83b0a200 100644
--- a/src/Examples/ContinuousDistributions/GammaDistribution.cs
+++ b/src/Examples/ContinuousDistributions/GammaDistribution.cs
@@ -118,23 +118,13 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Gamma(1, 2) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Gamma(1, 2) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = gamma.Sample();
- }
-
+ Gamma.Samples(data, 1, 2);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Gamma(8) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Gamma(5, 1) distribution and display histogram");
- gamma.Shape = 5;
- gamma.Scale = 1;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = gamma.Sample();
- }
-
+ Gamma.Samples(data, 5, 1);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/InverseGammaDistribution.cs b/src/Examples/ContinuousDistributions/InverseGammaDistribution.cs
index a4d2fb36..70c5a90e 100644
--- a/src/Examples/ContinuousDistributions/InverseGammaDistribution.cs
+++ b/src/Examples/ContinuousDistributions/InverseGammaDistribution.cs
@@ -118,33 +118,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the InverseGamma(4, 0.5) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the InverseGamma(4, 0.5) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = inverseGamma.Sample();
- }
-
+ InverseGamma.Samples(data, 4, 0.5);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the InverseGamma(8, 0.5) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the InverseGamma(8, 0.5) distribution and display histogram");
- inverseGamma.Shape = 8;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = inverseGamma.Sample();
- }
-
+ InverseGamma.Samples(data, 8, 0.5);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the InverseGamma(2, 1) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the InverseGamma(8, 2) distribution and display histogram");
- inverseGamma.Scale = 2;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = inverseGamma.Sample();
- }
-
+ InverseGamma.Samples(data, 8, 2);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/LaplaceDistribution.cs b/src/Examples/ContinuousDistributions/LaplaceDistribution.cs
index 7dba19e3..bb49c1db 100644
--- a/src/Examples/ContinuousDistributions/LaplaceDistribution.cs
+++ b/src/Examples/ContinuousDistributions/LaplaceDistribution.cs
@@ -121,34 +121,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Laplace(0, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Laplace(0, 1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = laplace.Sample();
- }
-
+ Laplace.Samples(data, 0.0, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Laplace(0, 4) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Laplace(0, 4) distribution and display histogram");
- data = new double[100000];
- laplace.Scale = 4;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = laplace.Sample();
- }
-
+ Laplace.Samples(data, 0.0, 4.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Laplace(-10, 4) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Laplace(-10 4) distribution and display histogram");
- laplace.Location = -10;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = laplace.Sample();
- }
-
+ Laplace.Samples(data, -10.0, 4.0);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/LogNormalDistribution.cs b/src/Examples/ContinuousDistributions/LogNormalDistribution.cs
index 4038777b..1e1ec3d2 100644
--- a/src/Examples/ContinuousDistributions/LogNormalDistribution.cs
+++ b/src/Examples/ContinuousDistributions/LogNormalDistribution.cs
@@ -121,34 +121,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the LogNormal(0, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the LogNormal(0, 1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = logNormal.Sample();
- }
-
+ LogNormal.Samples(data, 0.0, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the LogNormal(0, 0.5) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the LogNormal(0, 0.5) distribution and display histogram");
- logNormal.Sigma = 0.5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = logNormal.Sample();
- }
-
+ LogNormal.Samples(data, 0.0, 0.5);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the LogNormal(5, 0.25) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the LogNormal(5, 0.25) distribution and display histogram");
- logNormal.Mu = 5;
- logNormal.Sigma = 0.25;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = logNormal.Sample();
- }
-
+ LogNormal.Samples(data, 5.0, 0.25);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/NormalDistribution.cs b/src/Examples/ContinuousDistributions/NormalDistribution.cs
index 0141b9b5..7aff132e 100644
--- a/src/Examples/ContinuousDistributions/NormalDistribution.cs
+++ b/src/Examples/ContinuousDistributions/NormalDistribution.cs
@@ -121,23 +121,13 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Normal(0, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Normal(0, 1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = normal.Sample();
- }
-
+ Normal.Samples(data, 0.0, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Normal(-10, 0.2) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Normal(-10, 0.01) distribution and display histogram");
- normal.Mean = -10;
- normal.StdDev = 0.01;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = normal.Sample();
- }
-
+ Normal.Samples(data, -10.0, 0.01);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/ParetoDistribution.cs b/src/Examples/ContinuousDistributions/ParetoDistribution.cs
index d1204369..40df5808 100644
--- a/src/Examples/ContinuousDistributions/ParetoDistribution.cs
+++ b/src/Examples/ContinuousDistributions/ParetoDistribution.cs
@@ -121,34 +121,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Pareto(1, 3) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Pareto(1, 3) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = pareto.Sample();
- }
-
+ Pareto.Samples(data, 1.0, 3.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Pareto(1, 1) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Pareto(1, 1) distribution and display histogram");
- pareto.Shape = 1;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = pareto.Sample();
- }
-
+ Pareto.Samples(data, 1.0, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Pareto(10, 5) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Pareto(10, 50) distribution and display histogram");
- pareto.Shape = 50;
- pareto.Scale = 10;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = pareto.Sample();
- }
-
+ Pareto.Samples(data, 10.0, 50.0);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/RayleighDistribution.cs b/src/Examples/ContinuousDistributions/RayleighDistribution.cs
index a0699744..ec08a413 100644
--- a/src/Examples/ContinuousDistributions/RayleighDistribution.cs
+++ b/src/Examples/ContinuousDistributions/RayleighDistribution.cs
@@ -121,33 +121,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Rayleigh(1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Rayleigh(1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = rayleigh.Sample();
- }
-
+ Rayleigh.Samples(data, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Rayleigh(4) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Rayleigh(4) distribution and display histogram");
- rayleigh.Scale = 4;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = rayleigh.Sample();
- }
-
+ Rayleigh.Samples(data, 4.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Rayleigh(0.5) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Rayleigh(0.5) distribution and display histogram");
- rayleigh.Scale = 0.5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = rayleigh.Sample();
- }
-
+ Rayleigh.Samples(data, 0.5);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/StableDistribution.cs b/src/Examples/ContinuousDistributions/StableDistribution.cs
index 3c436e9c..b23f010e 100644
--- a/src/Examples/ContinuousDistributions/StableDistribution.cs
+++ b/src/Examples/ContinuousDistributions/StableDistribution.cs
@@ -118,36 +118,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Stable(1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Stable(2, 0, 1, 0) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = stable.Sample();
- }
-
+ Stable.Samples(data, 2, 0, 1, 0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Stable(1, 0, 1, 0) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Stable(1, 0, 1, 0) distribution and display histogram");
- stable.Alpha = 1;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = stable.Sample();
- }
-
+ Stable.Samples(data, 1, 0, 1, 0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Stable(1.5, 1, 1, 5) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Stable(1.5, 1, 1, 5) distribution and display histogram");
- stable.Alpha = 1.5;
- stable.Beta = 1;
- stable.Location = 5;
- stable.Scale = 5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = stable.Sample();
- }
-
+ Stable.Samples(data, 1.5, 1, 1, 5);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/StudentTDistribution.cs b/src/Examples/ContinuousDistributions/StudentTDistribution.cs
index 1ce5c345..c0243ed7 100644
--- a/src/Examples/ContinuousDistributions/StudentTDistribution.cs
+++ b/src/Examples/ContinuousDistributions/StudentTDistribution.cs
@@ -117,32 +117,18 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the StudentT(0, 1, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the StudentT(0, 1, 1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = studentT.Sample();
- }
-
+ StudentT.Samples(data, 0, 1, 1);
ConsoleHelper.DisplayHistogram(data);
// 5. Generate 100000 samples of the StudentT(0, 1, 5) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the StudentT(0, 1, 5) distribution and display histogram");
- studentT.DegreesOfFreedom = 5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = studentT.Sample();
- }
-
+ StudentT.Samples(data, 0, 1, 5);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the StudentT(0, 1, 10) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the StudentT(0, 1, 10) distribution and display histogram");
- studentT.DegreesOfFreedom = 10;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = studentT.Sample();
- }
-
+ StudentT.Samples(data, 0, 1, 10);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/TriangularDistribution.cs b/src/Examples/ContinuousDistributions/TriangularDistribution.cs
index 97a28ec0..fac2c4e2 100644
--- a/src/Examples/ContinuousDistributions/TriangularDistribution.cs
+++ b/src/Examples/ContinuousDistributions/TriangularDistribution.cs
@@ -63,7 +63,7 @@ namespace Examples.ContinuousDistributionsExamples
/// Triangular distribution
public void Run()
{
- // 1. Initialize
+ // 1. Initialize
var triangular = new Triangular(0, 1, 0.3);
Console.WriteLine(@"1. Initialize the new instance of the Triangular distribution class with parameters Lower = {0}, Upper = {1}, Mode = {2}", triangular.LowerBound, triangular.UpperBound, triangular.Mode);
Console.WriteLine();
@@ -119,26 +119,15 @@ namespace Examples.ContinuousDistributionsExamples
Console.WriteLine();
// 10000 samples with starting parameters
- Console.WriteLine(@"4. Generate 100000 samples of the Triangular({0}, {1}, {2}) distribution and display histogram", triangular.LowerBound, triangular.UpperBound, triangular.Mode);
+ Console.WriteLine(@"4. Generate 100000 samples of the Triangular(0, 1, 0.3) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = triangular.Sample();
- }
-
+ Triangular.Samples(data, 0.0, 1.0, 0.3);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 10000 with different parameters
- triangular.UpperBound = 10;
- triangular.Mode = 8;
- triangular.LowerBound = 2;
- Console.WriteLine(@"4. Generate 100000 samples of the Triangular({0}, {1}, {2}) distribution and display histogram", triangular.LowerBound, triangular.UpperBound, triangular.Mode);
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = triangular.Sample();
- }
-
+ Console.WriteLine(@"4. Generate 100000 samples of the Triangular(2, 10, 8) distribution and display histogram");
+ Triangular.Samples(data, 2.0, 10.0, 8.0);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/ContinuousDistributions/WeibullDistribution.cs b/src/Examples/ContinuousDistributions/WeibullDistribution.cs
index 57dc49ec..3b6d16bb 100644
--- a/src/Examples/ContinuousDistributions/WeibullDistribution.cs
+++ b/src/Examples/ContinuousDistributions/WeibullDistribution.cs
@@ -121,33 +121,19 @@ namespace Examples.ContinuousDistributionsExamples
// 4. Generate 100000 samples of the Weibull(0.5, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Weibull(0.5, 1) distribution and display histogram");
var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = weibull.Sample();
- }
-
+ Weibull.Samples(data, 0.5, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Weibull(1.5, 1) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Weibull(1.5, 1) distribution and display histogram");
- weibull.Shape = 1.5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = weibull.Sample();
- }
-
+ Weibull.Samples(data, 1.5, 1.0);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Weibull(5, 1) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Weibull(5, 1) distribution and display histogram");
- weibull.Shape = 5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = weibull.Sample();
- }
-
+ Weibull.Samples(data, 5.0, 1.0);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/BernoulliDistribution.cs b/src/Examples/DiscreteDistributions/BernoulliDistribution.cs
index 12390929..6b9ea5f6 100644
--- a/src/Examples/DiscreteDistributions/BernoulliDistribution.cs
+++ b/src/Examples/DiscreteDistributions/BernoulliDistribution.cs
@@ -117,34 +117,20 @@ namespace Examples.DiscreteDistributionsExamples
// 4. Generate 100000 samples of the Bernoulli(0.2) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Bernoulli(0.2) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = bernoulli.Sample();
- }
-
+ var data = new int[100000];
+ Bernoulli.Samples(data, 0.2);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Bernoulli(4) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Bernoulli(0.9) distribution and display histogram");
- bernoulli.P = 0.9;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = bernoulli.Sample();
- }
-
+ Bernoulli.Samples(data, 0.9);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Bernoulli(8) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Bernoulli(0.5) distribution and display histogram");
- bernoulli.P = 0.5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = bernoulli.Sample();
- }
-
+ Bernoulli.Samples(data, 0.5);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/BinomialDistribution.cs b/src/Examples/DiscreteDistributions/BinomialDistribution.cs
index c86fc5c3..5fc2b620 100644
--- a/src/Examples/DiscreteDistributions/BinomialDistribution.cs
+++ b/src/Examples/DiscreteDistributions/BinomialDistribution.cs
@@ -120,35 +120,20 @@ namespace Examples.DiscreteDistributionsExamples
// 4. Generate 100000 samples of the Binomial(0.2, 20) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Binomial(0.2, 20) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = binomial.Sample();
- }
-
+ var data = new int[100000];
+ Binomial.Samples(data, 0.2, 20);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Binomial(0.7, 20) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Binomial(0.7, 20) distribution and display histogram");
- binomial.P = 0.7;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = binomial.Sample();
- }
-
+ Binomial.Samples(data, 0.7, 20);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Binomial(0.5, 40) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Binomial(0.5, 40) distribution and display histogram");
- binomial.P = 0.5;
- binomial.N = 40;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = binomial.Sample();
- }
-
+ Binomial.Samples(data, 0.5, 40);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/CategoricalDistribution.cs b/src/Examples/DiscreteDistributions/CategoricalDistribution.cs
index 39700842..ad960a5e 100644
--- a/src/Examples/DiscreteDistributions/CategoricalDistribution.cs
+++ b/src/Examples/DiscreteDistributions/CategoricalDistribution.cs
@@ -111,24 +111,15 @@ namespace Examples.DiscreteDistributionsExamples
Console.WriteLine();
// 4. Generate 100000 samples of the Categorical(new []{ 0.1, 0.2, 0.25, 0.45 }) distribution and display histogram
- Console.WriteLine(@"4. Generate 100000 samples of the Categorical(0.2, 20) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = binomial.Sample();
- }
-
+ Console.WriteLine(@"4. Generate 100000 samples of the Categorical(0.1, 0.2, 0.25, 0.45) distribution and display histogram");
+ var data = new int[100000];
+ Categorical.Samples(data, new[] { 0.1, 0.2, 0.25, 0.45 });
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Categorical(new []{ 0.6, 0.2, 0.1, 0.1 }) distribution and display histogram
- Console.WriteLine(@"5. Generate 100000 samples of the Categorical(0.7, 20) distribution and display histogram");
- binomial.P = new[] { 0.6, 0.2, 0.1, 0.1 };
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = binomial.Sample();
- }
-
+ Console.WriteLine(@"5. Generate 100000 samples of the Categorical(0.6, 0.2, 0.1, 0.1) distribution and display histogram");
+ Categorical.Samples(data, new[] { 0.6, 0.2, 0.1, 0.1 });
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/ConwayMaxwellPoissonDistribution.cs b/src/Examples/DiscreteDistributions/ConwayMaxwellPoissonDistribution.cs
index 22f8e5d2..0cec1396 100644
--- a/src/Examples/DiscreteDistributions/ConwayMaxwellPoissonDistribution.cs
+++ b/src/Examples/DiscreteDistributions/ConwayMaxwellPoissonDistribution.cs
@@ -63,40 +63,40 @@ namespace Examples.DiscreteDistributionsExamples
public void Run()
{
// 1. Initialize the new instance of the ConwayMaxwellPoisson distribution class with parameters Lambda = 2, Nu = 1
- var binomial = new ConwayMaxwellPoisson(2, 1);
- Console.WriteLine(@"1. Initialize the new instance of the ConwayMaxwellPoisson distribution class with parameters Lambda = {0}, Nu = {1}", binomial.Lambda, binomial.Nu);
+ var conwayMaxwellPoisson = new ConwayMaxwellPoisson(2, 1);
+ Console.WriteLine(@"1. Initialize the new instance of the ConwayMaxwellPoisson distribution class with parameters Lambda = {0}, Nu = {1}", conwayMaxwellPoisson.Lambda, conwayMaxwellPoisson.Nu);
Console.WriteLine();
// 2. Distributuion properties:
- Console.WriteLine(@"2. {0} distributuion properties:", binomial);
+ Console.WriteLine(@"2. {0} distributuion properties:", conwayMaxwellPoisson);
// Cumulative distribution function
- Console.WriteLine(@"{0} - Сumulative distribution at location '3'", binomial.CumulativeDistribution(3).ToString(" #0.00000;-#0.00000"));
+ Console.WriteLine(@"{0} - Сumulative distribution at location '3'", conwayMaxwellPoisson.CumulativeDistribution(3).ToString(" #0.00000;-#0.00000"));
// Probability density
- Console.WriteLine(@"{0} - Probability mass at location '3'", binomial.Probability(3).ToString(" #0.00000;-#0.00000"));
+ Console.WriteLine(@"{0} - Probability mass at location '3'", conwayMaxwellPoisson.Probability(3).ToString(" #0.00000;-#0.00000"));
// Log probability density
- Console.WriteLine(@"{0} - Log probability mass at location '3'", binomial.ProbabilityLn(3).ToString(" #0.00000;-#0.00000"));
+ Console.WriteLine(@"{0} - Log probability mass at location '3'", conwayMaxwellPoisson.ProbabilityLn(3).ToString(" #0.00000;-#0.00000"));
// Smallest element in the domain
- Console.WriteLine(@"{0} - Smallest element in the domain", binomial.Minimum.ToString(" #0.00000;-#0.00000"));
+ Console.WriteLine(@"{0} - Smallest element in the domain", conwayMaxwellPoisson.Minimum.ToString(" #0.00000;-#0.00000"));
// Mean
- Console.WriteLine(@"{0} - Mean", binomial.Mean.ToString(" #0.00000;-#0.00000"));
+ Console.WriteLine(@"{0} - Mean", conwayMaxwellPoisson.Mean.ToString(" #0.00000;-#0.00000"));
// Variance
- Console.WriteLine(@"{0} - Variance", binomial.Variance.ToString(" #0.00000;-#0.00000"));
+ Console.WriteLine(@"{0} - Variance", conwayMaxwellPoisson.Variance.ToString(" #0.00000;-#0.00000"));
// Standard deviation
- Console.WriteLine(@"{0} - Standard deviation", binomial.StdDev.ToString(" #0.00000;-#0.00000"));
+ Console.WriteLine(@"{0} - Standard deviation", conwayMaxwellPoisson.StdDev.ToString(" #0.00000;-#0.00000"));
Console.WriteLine();
// 3. Generate 10 samples of the ConwayMaxwellPoisson distribution
Console.WriteLine(@"3. Generate 10 samples of the ConwayMaxwellPoisson distribution");
for (var i = 0; i < 10; i++)
{
- Console.Write(binomial.Sample().ToString("N05") + @" ");
+ Console.Write(conwayMaxwellPoisson.Sample().ToString("N05") + @" ");
}
Console.WriteLine();
@@ -104,35 +104,20 @@ namespace Examples.DiscreteDistributionsExamples
// 4. Generate 100000 samples of the ConwayMaxwellPoisson(4, 1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the ConwayMaxwellPoisson(4, 1) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = binomial.Sample();
- }
-
+ var data = new int[100000];
+ ConwayMaxwellPoisson.Samples(data, 4, 1);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the ConwayMaxwellPoisson(2, 1) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the ConwayMaxwellPoisson(2, 1) distribution and display histogram");
- binomial.Lambda = 2;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = binomial.Sample();
- }
-
+ ConwayMaxwellPoisson.Samples(data, 2, 1);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the ConwayMaxwellPoisson(5, 2) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the ConwayMaxwellPoisson(5, 2) distribution and display histogram");
- binomial.Lambda = 5;
- binomial.Nu = 2;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = binomial.Sample();
- }
-
+ ConwayMaxwellPoisson.Samples(data, 5, 2);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/DiscreteUniformDistribution.cs b/src/Examples/DiscreteDistributions/DiscreteUniformDistribution.cs
index 4b479d34..24f56bd3 100644
--- a/src/Examples/DiscreteDistributions/DiscreteUniformDistribution.cs
+++ b/src/Examples/DiscreteDistributions/DiscreteUniformDistribution.cs
@@ -120,36 +120,20 @@ namespace Examples.DiscreteDistributionsExamples
// 4. Generate 100000 samples of the DiscreteUniform(2, 10) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the DiscreteUniform(2, 10) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = discreteUniform.Sample();
- }
-
+ var data = new int[100000];
+ DiscreteUniform.Samples(data, 2, 10);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the DiscreteUniform(-10, 10) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the DiscreteUniform(-10, 10) distribution and display histogram");
- discreteUniform.LowerBound = -10;
- discreteUniform.UpperBound = 10;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = discreteUniform.Sample();
- }
-
+ DiscreteUniform.Samples(data, -10, 10);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the DiscreteUniform(0, 40) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the DiscreteUniform(0, 40) distribution and display histogram");
- discreteUniform.LowerBound = 0;
- discreteUniform.UpperBound = 40;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = discreteUniform.Sample();
- }
-
+ DiscreteUniform.Samples(data, 0, 40);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/GeometricDistribution.cs b/src/Examples/DiscreteDistributions/GeometricDistribution.cs
index edaa2e2e..8952411a 100644
--- a/src/Examples/DiscreteDistributions/GeometricDistribution.cs
+++ b/src/Examples/DiscreteDistributions/GeometricDistribution.cs
@@ -119,35 +119,21 @@ namespace Examples.DiscreteDistributionsExamples
Console.WriteLine();
// 4. Generate 100000 samples of the Geometric(0.2, 20) distribution and display histogram
- Console.WriteLine(@"4. Generate 100000 samples of the Geometric(0.2, 20) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = geometric.Sample();
- }
-
+ Console.WriteLine(@"4. Generate 100000 samples of the Geometric(0.2) distribution and display histogram");
+ var data = new int[100000];
+ Geometric.Samples(data, 0.2);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Geometric(0.5) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Geometric(0.5) distribution and display histogram");
- geometric.P = 0.5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = geometric.Sample();
- }
-
+ Geometric.Samples(data, 0.5);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Geometric(0.8) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Geometric(0.8) distribution and display histogram");
- geometric.P = 0.8;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = geometric.Sample();
- }
-
+ Geometric.Samples(data, 0.8);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/HypergeometricDistribution.cs b/src/Examples/DiscreteDistributions/HypergeometricDistribution.cs
index b5b14bd6..07360afe 100644
--- a/src/Examples/DiscreteDistributions/HypergeometricDistribution.cs
+++ b/src/Examples/DiscreteDistributions/HypergeometricDistribution.cs
@@ -114,25 +114,14 @@ namespace Examples.DiscreteDistributionsExamples
// 4. Generate 100000 samples of the Hypergeometric(30, 15, 10) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Hypergeometric(30, 15, 10) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = hypergeometric.Sample();
- }
-
+ var data = new int[100000];
+ Hypergeometric.Samples(data, 30, 15, 10);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Hypergeometric(52, 13, 5) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Hypergeometric(52, 13, 5) distribution and display histogram");
- hypergeometric.Population = 52;
- hypergeometric.Success = 13;
- hypergeometric.Draws = 5;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = hypergeometric.Sample();
- }
-
+ Hypergeometric.Samples(data, 52, 13, 5);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/NegativeBinomialDistribution.cs b/src/Examples/DiscreteDistributions/NegativeBinomialDistribution.cs
index 342df50d..c20afe8d 100644
--- a/src/Examples/DiscreteDistributions/NegativeBinomialDistribution.cs
+++ b/src/Examples/DiscreteDistributions/NegativeBinomialDistribution.cs
@@ -113,36 +113,21 @@ namespace Examples.DiscreteDistributionsExamples
Console.WriteLine();
// 4. Generate 100000 samples of the NegativeBinomial(0.2, 20) distribution and display histogram
- Console.WriteLine(@"4. Generate 100000 samples of the NegativeBinomial(0.2, 20) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = negativeBinomial.Sample();
- }
-
+ Console.WriteLine(@"4. Generate 100000 samples of the NegativeBinomial(20, 0.2) distribution and display histogram");
+ var data = new int[100000];
+ NegativeBinomial.Samples(data, 20, 0.2);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the NegativeBinomial(0.7, 20) distribution and display histogram
- Console.WriteLine(@"5. Generate 100000 samples of the NegativeBinomial(0.7, 20) distribution and display histogram");
- negativeBinomial.P = 0.7;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = negativeBinomial.Sample();
- }
-
+ Console.WriteLine(@"5. Generate 100000 samples of the NegativeBinomial(20, 0.7) distribution and display histogram");
+ NegativeBinomial.Samples(data, 20, 0.7);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the NegativeBinomial(0.5, 1) distribution and display histogram
- Console.WriteLine(@"6. Generate 100000 samples of the NegativeBinomial(0.5, 1) distribution and display histogram");
- negativeBinomial.P = 0.5;
- negativeBinomial.R = 1;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = negativeBinomial.Sample();
- }
-
+ Console.WriteLine(@"6. Generate 100000 samples of the NegativeBinomial(1, 0.5) distribution and display histogram");
+ NegativeBinomial.Samples(data, 1, 0.5);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/PoissonDistribution.cs b/src/Examples/DiscreteDistributions/PoissonDistribution.cs
index 8147d6df..ed366b21 100644
--- a/src/Examples/DiscreteDistributions/PoissonDistribution.cs
+++ b/src/Examples/DiscreteDistributions/PoissonDistribution.cs
@@ -120,34 +120,20 @@ namespace Examples.DiscreteDistributionsExamples
// 4. Generate 100000 samples of the Poisson(1) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Poisson(1) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = poisson.Sample();
- }
-
+ var data = new int[100000];
+ Poisson.Samples(data, 1);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Poisson(4) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Poisson(4) distribution and display histogram");
- poisson.Lambda = 4;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = poisson.Sample();
- }
-
+ Poisson.Samples(data, 4);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Poisson(10) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Poisson(10) distribution and display histogram");
- poisson.Lambda = 10;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = poisson.Sample();
- }
-
+ Poisson.Samples(data, 10);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/DiscreteDistributions/ZipfDistribution.cs b/src/Examples/DiscreteDistributions/ZipfDistribution.cs
index 5f8ccde2..2f535733 100644
--- a/src/Examples/DiscreteDistributions/ZipfDistribution.cs
+++ b/src/Examples/DiscreteDistributions/ZipfDistribution.cs
@@ -117,35 +117,20 @@ namespace Examples.DiscreteDistributionsExamples
// 4. Generate 100000 samples of the Zipf(5, 10) distribution and display histogram
Console.WriteLine(@"4. Generate 100000 samples of the Zipf(5, 10) distribution and display histogram");
- var data = new double[100000];
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = zipf.Sample();
- }
-
+ var data = new int[100000];
+ Zipf.Samples(data, 5, 10);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 5. Generate 100000 samples of the Zipf(2, 10) distribution and display histogram
Console.WriteLine(@"5. Generate 100000 samples of the Zipf(2, 10) distribution and display histogram");
- zipf.S = 2;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = zipf.Sample();
- }
-
+ Zipf.Samples(data, 2, 10);
ConsoleHelper.DisplayHistogram(data);
Console.WriteLine();
// 6. Generate 100000 samples of the Zipf(5, 20) distribution and display histogram
Console.WriteLine(@"6. Generate 100000 samples of the Zipf(1, 20) distribution and display histogram");
- zipf.S = 1;
- zipf.N = 20;
- for (var i = 0; i < data.Length; i++)
- {
- data[i] = zipf.Sample();
- }
-
+ Zipf.Samples(data, 1, 20);
ConsoleHelper.DisplayHistogram(data);
}
}
diff --git a/src/Examples/Examples.csproj b/src/Examples/Examples.csproj
index 376d6fdd..b0c3736e 100644
--- a/src/Examples/Examples.csproj
+++ b/src/Examples/Examples.csproj
@@ -172,15 +172,15 @@
true
+
+
+
- {B7CAE5F4-A23F-4438-B5BE-41226618B695}
+ {b7cae5f4-a23f-4438-b5be-41226618b695}
Numerics
-
-
-