From 95050aef2f878d318fc42a0fbf7973ec446707ce Mon Sep 17 00:00:00 2001 From: Christoph Ruegg Date: Tue, 24 Jun 2014 14:01:44 +0200 Subject: [PATCH] Fix examples --- Examples.sln | 49 +++++++++++++++++++ RELEASENOTES.md | 2 +- build.fsx | 5 ++ src/Examples/ConsoleHelper.cs | 19 +++++-- .../BetaDistribution.cs | 30 ++---------- .../ChiDistribution.cs | 20 ++------ .../ChiSquareDistribution.cs | 20 ++------ .../ContinuousUniformDistribution.cs | 14 +----- .../ErlangDistribution.cs | 21 ++------ .../ExponentialDistribution.cs | 20 ++------ .../FisherSnedecorDistribution.cs | 22 ++------- .../GammaDistribution.cs | 14 +----- .../InverseGammaDistribution.cs | 20 ++------ .../LaplaceDistribution.cs | 21 ++------ .../LogNormalDistribution.cs | 21 ++------ .../NormalDistribution.cs | 14 +----- .../ParetoDistribution.cs | 21 ++------ .../RayleighDistribution.cs | 20 ++------ .../StableDistribution.cs | 23 ++------- .../StudentTDistribution.cs | 20 ++------ .../TriangularDistribution.cs | 21 ++------ .../WeibullDistribution.cs | 20 ++------ .../BernoulliDistribution.cs | 22 ++------- .../BinomialDistribution.cs | 23 ++------- .../CategoricalDistribution.cs | 19 ++----- .../ConwayMaxwellPoissonDistribution.cs | 45 ++++++----------- .../DiscreteUniformDistribution.cs | 24 ++------- .../GeometricDistribution.cs | 24 ++------- .../HypergeometricDistribution.cs | 17 ++----- .../NegativeBinomialDistribution.cs | 29 +++-------- .../PoissonDistribution.cs | 22 ++------- .../DiscreteDistributions/ZipfDistribution.cs | 23 ++------- src/Examples/Examples.csproj | 8 +-- src/FSharpExamples/FSharpExamples.fsproj | 2 + 34 files changed, 185 insertions(+), 510 deletions(-) create mode 100644 Examples.sln 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 - - -