<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>mathnetnumerics Wiki &amp; Documentation Rss Feed</title><link>http://mathnetnumerics.codeplex.com/Wiki/View.aspx?title=Home</link><description>mathnetnumerics Wiki Rss Description</description><item><title>Updated Wiki: Home</title><link>https://mathnetnumerics.codeplex.com/wikipage?version=27</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Math.NET Numerics&lt;/h1&gt;
Numerics is the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Covered topics include special functions, linear algebra, probability models, random numbers, interpolation, integral transforms and more.&lt;br /&gt;&lt;br /&gt;Math.NET Numerics targets Microsoft .Net 4.0 and Mono, and in addition to a purely managed implementation also supports native hardware optimization.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;a href="http://numerics.mathdotnet.com/"&gt;Math.NET Numerics Website&lt;/a&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;i&gt;Please report issues over at &lt;a href="https://github.com/mathnet/mathnet-numerics/issues"&gt;GitHub&lt;/a&gt; instead of here. Thanks.&lt;/i&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 04 Feb 2013 20:58:41 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130204085841P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://mathnetnumerics.codeplex.com/documentation?version=7</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Math.NET Numerics Documentation&lt;/h1&gt;
Math.NET Numerics is an opensource numerical library for .Net, Silverlight, Metro and Mono. This topic lists documentation that will help you use the toolkit in your own application. In addition to the user guide, there&amp;#39;s also a condensed &lt;a href="http://api.mathdotnet.com/"&gt;API Reference&lt;/a&gt; available, or if you prefer examples the sample code project may give you some ideas.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://api.mathdotnet.com/"&gt;API Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C# Code Samples: &lt;a href="https://github.com/mathnet/mathnet-numerics/tree/master/src/Examples"&gt;sources&lt;/a&gt; or as &lt;a href="http://nuget.org/packages/MathNet.Numerics.Sample"&gt;NuGet source package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;F# Code Samples: &lt;a href="https://github.com/mathnet/mathnet-numerics/tree/master/src/FSharpExamples"&gt;sources&lt;/a&gt; or as &lt;a href="http://nuget.org/packages/MathNet.Numerics.FSharp.Sample"&gt;NuGet source package&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;User Guide&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Documentation"&gt;Random Numbers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Probability%20Distributions&amp;referringTitle=Documentation"&gt;Probability Distributions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Statistics&amp;referringTitle=Documentation"&gt;Statistics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Linear%20Algebra&amp;referringTitle=Documentation"&gt;Linear Algebra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Special%20Functions&amp;referringTitle=Documentation"&gt;Special Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Interpolation&amp;referringTitle=Documentation"&gt;Interpolation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Integration&amp;referringTitle=Documentation"&gt;Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Integral%20Transforms&amp;referringTitle=Documentation"&gt;Integral Transforms&lt;/a&gt; (FFT etc.)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Number%20Theory&amp;referringTitle=Documentation"&gt;Number Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Combinatorics&amp;referringTitle=Documentation"&gt;Combinatorics&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Advanced Topics&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Precision&lt;/li&gt;
&lt;li&gt;Parallel Execution&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Native%20Providers&amp;referringTitle=Documentation"&gt;Native Linear Algebra Providers&lt;/a&gt; (MKL, ACML)&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Blog Posts &amp;amp; Other Resources&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://christoph.ruegg.name/blog/2012/9/9/linear-regression-mathnet-numerics.html"&gt;Linear Regression with Math.NET Numerics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://christoph.ruegg.name/blog/2013/2/3/mathnet-numerics-with-native-linear-algebra.html"&gt;Math.NET Numerics with Native Linear Algebra&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
  &lt;br /&gt;  &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 04 Feb 2013 11:34:12 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20130204113412A</guid></item><item><title>Updated Wiki: Documentation</title><link>http://mathnetnumerics.codeplex.com/documentation?version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Math.NET Numerics Documentation&lt;/h1&gt;
Math.NET Numerics is an opensource numerical library for .Net, Silverlight, Metro and Mono. This topic lists documentation that will help you use the toolkit in your own application. In addition to the user guide, there&amp;#39;s also a condensed &lt;a href="http://api.mathdotnet.com/"&gt;API Reference&lt;/a&gt; available, or if you prefer examples the sample code project may give you some ideas.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://api.mathdotnet.com/"&gt;API Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C# Code Samples: &lt;a href="https://github.com/mathnet/mathnet-numerics/tree/master/src/Examples"&gt;sources&lt;/a&gt; or as &lt;a href="http://nuget.org/packages/MathNet.Numerics.Sample"&gt;NuGet source package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;F# Code Samples: &lt;a href="https://github.com/mathnet/mathnet-numerics/tree/master/src/FSharpExamples"&gt;sources&lt;/a&gt; or as &lt;a href="http://nuget.org/packages/MathNet.Numerics.FSharp.Sample"&gt;NuGet source package&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;User Guide&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Documentation"&gt;Random Numbers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Probability%20Distributions&amp;referringTitle=Documentation"&gt;Probability Distributions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Statistics&amp;referringTitle=Documentation"&gt;Statistics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Linear%20Algebra&amp;referringTitle=Documentation"&gt;Linear Algebra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Special%20Functions&amp;referringTitle=Documentation"&gt;Special Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Interpolation&amp;referringTitle=Documentation"&gt;Interpolation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Integration&amp;referringTitle=Documentation"&gt;Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Integral%20Transforms&amp;referringTitle=Documentation"&gt;Integral Transforms&lt;/a&gt; (FFT etc.)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Number%20Theory&amp;referringTitle=Documentation"&gt;Number Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Combinatorics&amp;referringTitle=Documentation"&gt;Combinatorics&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Advanced Topics&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Precision&lt;/li&gt;
&lt;li&gt;Parallel Execution&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Native%20Providers&amp;referringTitle=Documentation"&gt;Native Linear Algebra Providers&lt;/a&gt; (MKL, ACML)&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Blog Posts &amp;amp; Other Resources&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://christoph.ruegg.name/blog/2012/9/9/linear-regression-mathnet-numerics.html"&gt;Linear Regression With Math.NET Numerics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://christoph.ruegg.name/blog/2013/2/3/mathnet-numerics-with-native-linear-algebra.html"&gt;Math.NET Numerics With Native Linear Algebra&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
  &lt;br /&gt;  &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 04 Feb 2013 11:33:33 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20130204113333A</guid></item><item><title>Updated Wiki: Native Providers</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Native Providers&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Native Linear Algebra Providers&lt;/h1&gt;
Math.NET Numerics currently supports two native providers Intel&amp;#39;s Math Kernel Library (MKL) and AMD&amp;#39;s Core Math Library (ACML).&lt;br /&gt;&lt;br /&gt;See also &lt;a href="http://christoph.ruegg.name/blog/2013/2/3/mathnet-numerics-with-native-linear-algebra.html"&gt;Math.NET Numerics With Native Linear Algebra&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;MKL (Windows)&lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;Install MKL on your system (we are using v10.3 Update 2).&lt;/li&gt;
&lt;li&gt;Open the NativeWrappers.sln in VS 2010 under \src\NativeWrappers\Windows .&lt;/li&gt;
&lt;li&gt;Open the Configuration Manager and select either the 32-bit or 64-bit solution platform.&lt;/li&gt;
&lt;li&gt;Right click on the MKLWrapper project and update the MKL include directory under C/C++/General and the library directory under Linker/General to point to your MKL installation.&lt;/li&gt;
&lt;li&gt;Right click on the MKLWrapper project and click rebuild.&lt;/li&gt;
&lt;li&gt;There will be two DLLs in the output directory: Math.NET.Numerics.MKL.dll and libiomp5md.dll. The output directory will be either  \src\NativeWrappers\Windows\Win32\Release or \src\NativeWrappers\Windows\x64\release.&lt;/li&gt;
&lt;li&gt;Copy the two DLLs from #6 to the same directory as MathNet.Numerics.dll.&lt;/li&gt;
&lt;li&gt;Tell the Math.NET Numerics library to use the MKL provider by adding this line to your code:&lt;/li&gt;&lt;/ol&gt;
&lt;pre&gt;
MathNet.Numerics.Control.LinearAlgebraProvider =
   new MathNet.Numerics.Algorithms.LinearAlgebra.Mkl.MklLinearAlgebraProvider();
&lt;/pre&gt;
&lt;h2&gt;ACML (Windows) &lt;/h2&gt;
&lt;ol&gt;&lt;li&gt;Install the Intel Fortran version of ACML on your system (we are using v4.4) - &lt;a href="http://developer.amd.com/cpu/Libraries/acml/Pages/default.aspx"&gt;http://developer.amd.com/cpu/Libraries/acml/Pages/default.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Open the NativeWrappers.sln in VS 2010 under \src\NativeWrappers\Windows .&lt;/li&gt;
&lt;li&gt;Open the Configuration Manager and select either the 32-bit or 64-bit solution platform.&lt;/li&gt;
&lt;li&gt;Right click on the ACMLWrapper project and update the ACML include directory under C/C++/General and the library directory under Linker/General to point to your ACML installation.&lt;/li&gt;
&lt;li&gt;Right click on the ACMLWrapper project and click rebuild.&lt;/li&gt;
&lt;li&gt;There will be one DLL in the output directory: Math.NET.Numerics.ACML.dll. The output directory will be either  \src\NativeWrappers\Windows\Win32\Release or  \src\NativeWrappers\Windows\x64\release.&lt;/li&gt;
&lt;li&gt;Copy the DLL from #6 to the same directory as MathNet.Numerics.dll.&lt;/li&gt;
&lt;li&gt;Copy these DLLS from your ACML installation to the same directory as MathNet.Numerics: libacml&lt;i&gt;mp&lt;/i&gt;dll.dll, libifcoremd.dll, libiomp5md.dll, and libmmd.dll&lt;/li&gt;
&lt;li&gt;Tell the Math.NET Numerics library to use the ACML provider by adding this line to your code:&lt;/li&gt;&lt;/ol&gt;
&lt;pre&gt;
MathNet.Numerics.Control.LinearAlgebraProvider =
   new MathNet.Numerics.Algorithms.LinearAlgebra.Acml.AcmlLinearAlgebraProvider();
&lt;/pre&gt;&lt;br /&gt;Note: The ACML wrapper dynamically links the ACML libraries. If you have the Intel Fortran Complier installed you can statically link them.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 04 Feb 2013 11:30:08 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Native Providers 20130204113008A</guid></item><item><title>Updated Wiki: Home</title><link>https://mathnetnumerics.codeplex.com/wikipage?version=26</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Math.NET Numerics&lt;/h1&gt;
Numerics is the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Covered topics include special functions, linear algebra, probability models, random numbers, interpolation, integral transforms and more.&lt;br /&gt;&lt;br /&gt;Math.NET Numerics targets Microsoft .Net 4.0 and Mono, and in addition to a purely managed implementation will also support native hardware optimization.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;a href="http://numerics.mathdotnet.com/"&gt;Math.NET Numerics Website&lt;/a&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;i&gt;Please report issues over at &lt;a href="https://github.com/mathnet/mathnet-numerics/issues"&gt;GitHub&lt;/a&gt; instead of here. Thanks.&lt;/i&gt;&lt;br /&gt;    &lt;br /&gt;    &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 21 Jan 2013 12:35:10 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130121123510P</guid></item><item><title>Updated Wiki: Home</title><link>https://mathnetnumerics.codeplex.com/wikipage?version=25</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Math.NET Numerics&lt;/h1&gt;
Numerics is the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Covered topics include special functions, linear algebra, probability models, random numbers, interpolation, integral transforms and more.&lt;br /&gt;&lt;br /&gt;Math.NET Numerics targets Microsoft .Net 4.0 and Mono, and in addition to a purely managed implementation will also support native hardware optimization.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;a href="http://numerics.mathdotnet.com/"&gt;Math.NET Numerics Website&lt;/a&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;i&gt;Please report issues over at &lt;a href="https://github.com/mathnet/mathnet-numerics/issues"&gt;GitHub&lt;/a&gt; instead of here. Thanks.&lt;/i&gt;&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 21 Jan 2013 12:34:58 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130121123458P</guid></item><item><title>Updated Wiki: Home</title><link>https://mathnetnumerics.codeplex.com/wikipage?version=24</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Math.NET Numerics&lt;/h1&gt;
Numerics is the numerical foundation of the Math.NET project, aiming to provide methods and algorithms for numerical computations in science, engineering and every day use. Covered topics include special functions, linear algebra, probability models, random numbers, interpolation, integral transforms and more.&lt;br /&gt;&lt;br /&gt;Math.NET Numerics targets Microsoft .Net 4.0 and Mono, and in addition to a purely managed implementation will also support native hardware optimization.&lt;br /&gt;
&lt;h2&gt;&lt;b&gt;&lt;a href="http://numerics.mathdotnet.com/"&gt;Math.NET Numerics Website&lt;/a&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;i&gt;Please report issues over at &lt;a href="https://github.com/mathnet/mathnet-numerics/issues"&gt;GitHub&lt;/a&gt; instead of here. Thanks.&lt;/i&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 21 Jan 2013 12:34:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130121123448P</guid></item><item><title>Updated Wiki: Special Functions</title><link>https://mathnetnumerics.codeplex.com/wikipage?title=Special Functions&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Special Functions&lt;/h1&gt;
&lt;h2&gt;Factorial&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Factorial: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Factorial"&gt;Factorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Logarithmic Factorial: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#FactorialLn"&gt;FactorialLn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Binomial Coefficient: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Binomial"&gt;Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Logarithmic Binomial Coefficient: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#BinomialLn"&gt;BinomialLn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Multinomial Coefficient: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Multinomial"&gt;Multinomial&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
Code Sample:&lt;br /&gt;&lt;pre&gt;
double x = SpecialFunctions.Factorial(14);
// x will now have the value 87178291200.0

double y = SpecialFunctions.Factorial(31);
// y will now have the value 8.2228386541779224E+33
&lt;/pre&gt;
&lt;h2&gt;Gamma&lt;/h2&gt;Commonly used gamma-related functions in literature:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;
GAMMA(a) = int(exp(-t)t^(a-1), t=0..infinity)
gamma(a,x) = int(exp(-t)t^(a-1),t=0..x)  
Gamma(a,x) = int(exp(-t)t^(a-1),t=x..infinity)  
P(a,x) = gamma(a,x)/GAMMA(a)  
Q(a,x) = Gamma(a,x)/GAMMA(a)
&lt;/pre&gt;
&lt;ul&gt;&lt;li&gt;Gamma: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Gamma"&gt;Gamma&lt;/a&gt; = a -&amp;gt; GAMMA(a)&lt;/li&gt;
&lt;li&gt;Logarithmic Gamma: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#GammaLn"&gt;GammaLn&lt;/a&gt; = a -&amp;gt; ln(abs(GAMMA(a))&lt;/li&gt;
&lt;li&gt;Lower Incomplete Gamma (Unregularized): &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#GammaLowerIncomplete"&gt;GammaLowerIncomplete&lt;/a&gt; = (a,x) -&amp;gt; gamma(a,x)&lt;/li&gt;
&lt;li&gt;Upper Incomplete Gamma (Unregularized): &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#GammaUpperIncomplete"&gt;GammaUpperIncomplete&lt;/a&gt; = (a,x) -&amp;gt; Gamma(a,x)&lt;/li&gt;
&lt;li&gt;Lower Incomplete Regularized Gamma: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#GammaLowerRegularized"&gt;GammaLowerRegularized&lt;/a&gt; = (a,x) -&amp;gt; P(a,x)&lt;/li&gt;
&lt;li&gt;Upper Incomplete Regularized Gamma: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#GammaUpperRegularized"&gt;GammaUpperRegularized&lt;/a&gt; = (a,x) -&amp;gt; Q(a,x)&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Digamma (Psi)&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Digamma (Psi): &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#DiGamma"&gt;DiGamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inverse Digamma: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#DiGammaInv"&gt;DiGammaInv&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Euler Beta&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Beta: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Beta"&gt;Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Logarithmic Beta: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#BetaLn"&gt;BetaLn&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lower Incomplete Beta (Unregularized): &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#BetaIncomplete"&gt;BetaIncomplete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Lower Incomplete Regularized Beta: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#BetaRegularized"&gt;BetaRegularized&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Error Function&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Error Function: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Erf"&gt;Erf&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Complementary Error Function: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Erfc"&gt;Erfc&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inverse Error Function: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#ErfInv"&gt;ErfInv&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Inverse Complementary Error Function: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#ErfcInv"&gt;ErfcInv&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
Code Sample:&lt;br /&gt;&lt;pre&gt;
double x = 0.9;
double res = SpecialFunctions.Erf(x);
// res will now have the value 0.7969082124
&lt;/pre&gt;
&lt;h2&gt;Logistic (Sigmoid)&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Logistic Function: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Logistic"&gt;Logistic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Logit Function (inverse of Logistic): &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Logit"&gt;Logit&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Harmonic Numbers&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;t&amp;#39;th Harmonic Number: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Harmonic"&gt;Harmonic&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Generalized Harmonic Number of order n of m: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#GeneralHarmonic"&gt;GeneralHarmonic&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Bessel and Struve Functions&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;Modified Bessel function of the first kind, order 0 and 1: I0(x), I1(x)&lt;/li&gt;
&lt;li&gt;Modified Bessel function of the second kind, order 0 and 1: K0(x), K1(x), plus exponentially scaled versions of them&lt;/li&gt;
&lt;li&gt;Modified Struve function of order 0 and 1: L0(x), L1(x)&lt;/li&gt;
&lt;li&gt;Modified Bessel minus modified Struve: I0(x)-L0(x), I1(x)-L1(x)&lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Various Numerically Stable Functions&lt;/h2&gt;&lt;ul&gt;&lt;li&gt;x -&amp;gt; exp(x)-1: &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#ExponentialMinusOne"&gt;ExponentialMinusOne&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;(a,b) -&amp;gt; sqrt(a^2 + b^2): &lt;a href="http://api.mathdotnet.com/Numerics/MathNet.Numerics/SpecialFunctions.htm#Hypotenuse"&gt;Hypotenuse&lt;/a&gt; (also for complex numbers)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 28 Dec 2012 10:53:50 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Special Functions 20121228105350A</guid></item><item><title>Updated Wiki: References</title><link>https://mathnetnumerics.codeplex.com/wikipage?title=References&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;References - Math.NET in the wild&lt;/h1&gt;
On this page we try to collect an excerpt of the &lt;i&gt;&amp;quot;social&amp;quot; graph&lt;/i&gt; of the Math.NET Numerics project. What other code or projects contributed in some way to Math.NET? Where is it used in the wild?&lt;br /&gt;
&lt;h2&gt;Direct Contributions&lt;/h2&gt;
&lt;h4&gt;Maintainers&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://christoph.ruegg.name/"&gt;Christoph R&amp;#252;egg&lt;/a&gt;: @cdrnet&lt;/li&gt;
&lt;li&gt;&lt;a href="http://research.microsoft.com/en-us/people/jvangael/"&gt;Jurgen Van Gael&lt;/a&gt;: @jvangael&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marcuscuda.com/"&gt;Marcus Cuda&lt;/a&gt;: @cuda &lt;i&gt;(previously)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Contributors&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://karatarakis.com/alex/"&gt;Alexander Karatarakis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ua.linkedin.com/pub/andriy-bratiychuk/4/6b/920"&gt;Andriy Bratiychuk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hani Nedhat&lt;/li&gt;
&lt;li&gt;Gustavo Guerra&lt;/li&gt;
&lt;li&gt;Much more, for a full compilation see &lt;a href="https://www.ohloh.net/p/mathnet/contributors/summary"&gt;Contributors at ohloh.com&lt;/a&gt;, or &lt;span class="codeInline"&gt;git shortlog -s&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Indirect Contributions and Inspiration&lt;/h2&gt;&lt;h4&gt;Contributors via dnAnalytics and Math.NET Iridium (both merged into Numerics)&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Patrick van der Valde&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vermorel.com/"&gt;Joann&amp;#232;s Vermorel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Matthew Kitchin&lt;/li&gt;
&lt;li&gt;Rana Ian&lt;/li&gt;
&lt;li&gt;Andrew Kurochka&lt;/li&gt;
&lt;li&gt;Thaddaeus Parker&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Contributors via other opensource projects&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.alglib.net/"&gt;ALGLIB&lt;/a&gt; by Sergey Bochkanov (with permission before license changed - thanks!)&lt;/li&gt;
&lt;li&gt;Boost by John Maddock&lt;/li&gt;
&lt;li&gt;Cephes Math Library by Stephen L. Moshier&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Where Math.NET is used&lt;/h2&gt;Excerpt of some projects and works where Math.NET is used or referenced today, or has been in the past. Please let us know if you&amp;#39;d like your work listed here as well, or if you&amp;#39;d prefer we remove it.
&lt;h4&gt;Opensource Projects and Code Snippets&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/zenogantner/MyMediaLite"&gt;MyMediaLite&lt;/a&gt; (lightweight, multi-purpose library of recommender system algorithms)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mathlibproject.codeplex.com"&gt;mathlib.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/lightfieldretrieval/"&gt;lightfieldretrieval&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sourceforge.net/projects/stanly/"&gt;STANLY - STAtic Network anaLYzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/mikeshewrapper/"&gt;MikeSheWrapper&lt;/a&gt; (hydrological modeling)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://launchpad.net/~fermisim-dev"&gt;FermiSim&lt;/a&gt; (studying Fermi paradox via simulation of models for space colonisation)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.noldorin.com/2011/03/kd-trees-for-dotnet/"&gt;KD-Trees for .NET&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/matrixrecommendation/"&gt;MatrixRecommendation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/opticaldiskexpanalyzer/"&gt;Optical Disk Experiment Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/barstructures/"&gt;BarStructures&lt;/a&gt; (Dynamic analysis of the bar structures)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/soundfingerprinting/"&gt;Sound Fingerprinting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ishmuradov.ru/page/affinnye-preobrazovanija-na-ploskosti-c"&gt;Affine Transformations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/dannyasher/"&gt;Danny Asher&lt;/a&gt; (F#)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/signalbrowser/"&gt;Signal Browser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fiitrobocup3d.sourceforge.net/"&gt;FIIT RoboCup 3D&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Articles &amp;amp; Tutorials&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/dsyme/archive/2012/07/06/getting-started-with-math-net-and-f-programming.aspx"&gt;Getting Started with Math.NET and F# Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tutorial: Using Math.NET Numerics in F# &lt;a href="http://msdn.microsoft.com/en-us/magazine/hh304363.aspx"&gt;MSDN Magazine&lt;/a&gt; | &lt;a href="http://msdn.microsoft.com/en-us/library/hh304363.aspx"&gt;MSDN Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Overview: Introduction to Numerical Computing in F# &lt;a href="http://msdn.microsoft.com/en-us/magazine/hh304372.aspx"&gt;MSDN Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sharpstatistics.co.uk/stats/linear-regression-in-c/"&gt;Linear regression in C#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sharpstatistics.co.uk/stats/non-linear-curve-fitting/"&gt;Non Linear Curve Fitting&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Thesis &amp;amp; Papers&lt;/h4&gt;TODO: find links, verify
&lt;ul&gt;&lt;li&gt;Detecting falls and poses in image silhouettes, &lt;i&gt;Master&amp;#39;s Thesis in Complex Adaptive Systems, Niklas Schr&amp;#228;der, Chalmers University of Technology, Gothenburg, Sweden, 2011&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;SoundLog, &lt;i&gt;Master&amp;#39;s Thesis in Information and Software Engineering, Andr&amp;#233; Filipe Mateus Ferreira, Instituto Superior T&amp;#233;cnico, Universidade T&amp;#233;cnica de Lisboa&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;ACCELEROMETERS USABILITY FOR DANGER TILT OFF-HIGHWAY VEHICLES AND SIGNAL FILTRATION WITH KALMAN FILTER, &lt;i&gt;Ondrej L&amp;#205;ŠKA, Kamil ŽIDEK, Technical University of Kosice, SjF, Department of biomedical engineering automation and measuring, Journal of applied science in the thermodynamics and fluid mechanics Vol. 4, No. 2/2010, ISSN 1802-9388&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Fast evaluation of Greeks in Monte Carlo calculations with the Adjoint Method, &lt;i&gt;Bachelor Thesis, Ivan Kuliš, Fachbereich Informatik und Mathematik, Institut f&amp;#252;r Mathematik, Johann Wolfgang Goethe Universit&amp;#228;t, Frankfurt am Main, 14.09.2011&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;3DMapping for Robotic Search and Rescue, &lt;i&gt;Peter Nelson, New College, 28 May 2011&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Quantitative structure-property relationship modeling algorithms, challenges and IT solutions, &lt;i&gt;Thesis, Ondrej Skrehota, FACULTY OF INFORMATIC, MASARYK UNIVERSITY, 2010&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Seismic Performance Assessment of Buildings Volume 2 – Implementation Guide, &lt;i&gt;ATC-58-1 75% Draft, APPLIED TECHNOLOGY COUNCIL, 201 Redwood Shores Parkway, Suite 240, Redwood City, California  94065, prepared for U.S. DEPARTMENT OF HOMELAND SECURITY (DHS) FEDERAL EMERGENCY MANAGEMENT AGENCY&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Use of Mobile Phones as Intelligent Sensors for Sound Input Analysis and Sleep State Detection, &lt;i&gt;Ondrej Krejcar, Jakub Jirka, Dalibor Janckulik, Sensors 2011, 11, 6037-6055, ISSN 1424-8220, 2011&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Design of a Wireless Acquisition System for a Digital Stethoscope, &lt;i&gt;Bachelor Thesis, Justin Miller, Faculty of Engineering &amp;amp; Surveying, University of Southern Queensland, ENG4112 Research Project, 2010&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Konzeption und Umsetzung einer RIA zur untersuchungsbegleitenden Erfassung von RNFLT-Scans und Untersuchung von Klassifikatoren f&amp;#252;r die diagnostische Unterst&amp;#252;tzung bei neurodegenerativen Erkrankungen am Beispiel der Multiplen Sklerose, &lt;i&gt;Diplomarbeit, Sebastian Bischoff, Fachbereich Informatik und Medien, Fachhochschule Brandenburg, 1.11.2009&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Ka`imiolakai ROV, &lt;i&gt;Team Limawa, Kapi&amp;#180;olani Community College&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Prototipo de una aplicaci&amp;#243;n inform&amp;#225;tica para gesti&amp;#243;n y mantenimiento de recursos pesquero, &lt;i&gt;Silvia Rodr&amp;#237;guez Rodr&amp;#237;guez, Jos&amp;#233; Juan Castro Hern&amp;#225;ndez, 2010&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Elastic Properties of Growing 2D Foam, &lt;i&gt;Master&amp;#39;s Thesis, Michael Schindlberger, Physical Systems Biology Group, University of Zurich, August 2011&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;University Course Work&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Uni Muenster, Computer Vision und Mustererkennung (SS 2011)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 03 Dec 2012 19:50:33 GMT</pubDate><guid isPermaLink="false">Updated Wiki: References 20121203075033P</guid></item><item><title>Updated Wiki: References</title><link>https://mathnetnumerics.codeplex.com/wikipage?title=References&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;References - Math.NET in the wild&lt;/h1&gt;
On this page we try to collect an excerpt of the &lt;i&gt;&amp;quot;social&amp;quot; graph&lt;/i&gt; of the Math.NET Numerics project. What other code or projects contributed in some way to Math.NET? Where is it used in the wild?&lt;br /&gt;
&lt;h2&gt;Direct Contributions&lt;/h2&gt;
&lt;h4&gt;Maintainers&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://christoph.ruegg.name/"&gt;Christoph R&amp;#252;egg&lt;/a&gt;: @cdrnet&lt;/li&gt;
&lt;li&gt;&lt;a href="http://research.microsoft.com/en-us/people/jvangael/"&gt;Jurgen Van Gael&lt;/a&gt;: @jvangael&lt;/li&gt;
&lt;li&gt;&lt;a href="http://marcuscuda.com/"&gt;Marcus Cuda&lt;/a&gt;: @cuda &lt;i&gt;(previously)&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Contributors&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://karatarakis.com/alex/"&gt;Alexander Karatarakis&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ua.linkedin.com/pub/andriy-bratiychuk/4/6b/920"&gt;Andriy Bratiychuk&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Hani Nedhat&lt;/li&gt;
&lt;li&gt;Gustavo Guerra&lt;/li&gt;
&lt;li&gt;Much more, for a full compilation see &lt;a href="https://www.ohloh.net/p/mathnet/contributors/summary"&gt;Contributors at ohloh.com&lt;/a&gt;, or &lt;span class="codeInline"&gt;git shortlog -s&lt;/span&gt;.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Indirect Contributions and Inspiration&lt;/h2&gt;&lt;h4&gt;Contributors via dnAnalytics and Math.NET Iridium (both merged into Numerics)&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Patrick van der Valde&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.vermorel.com/"&gt;Joann&amp;#232;s Vermorel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Matthew Kitchin&lt;/li&gt;
&lt;li&gt;Rana Ian&lt;/li&gt;
&lt;li&gt;Andrew Kurochka&lt;/li&gt;
&lt;li&gt;Thaddaeus Parker&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Contributors via other opensource projects&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.alglib.net/"&gt;ALGLIB&lt;/a&gt; by Sergey Bochkanov (with permission before license changed - thanks!)&lt;/li&gt;
&lt;li&gt;Boost by John Maddock&lt;/li&gt;
&lt;li&gt;Cephes Math Library by Stephen L. Moshier&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Where Math.NET is used&lt;/h2&gt;Excerpt of some projects and works where Math.NET is used or referenced today, or has been in the past. Please let us know if you&amp;#39;d like your work listed here as well, or if you&amp;#39;d prefer we remove it.
&lt;h4&gt;Opensource Projects and Code Snippets&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/zenogantner/MyMediaLite"&gt;MyMediaLite&lt;/a&gt; (lightweight, multi-purpose library of recommender system algorithms)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://mathlibproject.codeplex.com"&gt;mathlib.net&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/lightfieldretrieval/"&gt;lightfieldretrieval&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sourceforge.net/projects/stanly/"&gt;STANLY - STAtic Network anaLYzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/mikeshewrapper/"&gt;MikeSheWrapper&lt;/a&gt; (hydrological modeling)&lt;/li&gt;
&lt;li&gt;&lt;a href="https://launchpad.net/~fermisim-dev"&gt;FermiSim&lt;/a&gt; (studying Fermi paradox via simulation of models for space colonisation)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://blog.noldorin.com/2011/03/kd-trees-for-dotnet/"&gt;KD-Trees for .NET&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/matrixrecommendation/"&gt;MatrixRecommendation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/opticaldiskexpanalyzer/"&gt;Optical Disk Experiment Analyzer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/barstructures/"&gt;BarStructures&lt;/a&gt; (Dynamic analysis of the bar structures)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/soundfingerprinting/"&gt;Sound Fingerprinting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://ishmuradov.ru/page/affinnye-preobrazovanija-na-ploskosti-c"&gt;Affine Transformations&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/dannyasher/"&gt;Danny Asher&lt;/a&gt; (F#)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://code.google.com/p/signalbrowser/"&gt;Signal Browser&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://fiitrobocup3d.sourceforge.net/"&gt;FIIT RoboCup 3D&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Articles &amp;amp; Tutorials&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.msdn.com/b/dsyme/archive/2012/07/06/getting-started-with-math-net-and-f-programming.aspx"&gt;Getting Started with Math.NET and F# Programming&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Tutorial: Using Math.NET Numerics in F# &lt;a href="http://msdn.microsoft.com/en-us/magazine/hh304363.aspx"&gt;MSDN Magazine&lt;/a&gt; | &lt;a href="http://msdn.microsoft.com/en-us/library/hh304363.aspx"&gt;MSDN Library&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Overview: Introduction to Numerical Computing in F# &lt;a href="http://msdn.microsoft.com/en-us/magazine/hh304372.aspx"&gt;MSDN Magazine&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sharpstatistics.co.uk/stats/linear-regression-in-c/"&gt;Linear regression in C#&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://sharpstatistics.co.uk/stats/non-linear-curve-fitting/"&gt;Non Linear Curve Fitting&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;Thesis &amp;amp; Papers&lt;/h4&gt;TODO: find links, verify
&lt;ul&gt;&lt;li&gt;Detecting falls and poses in image silhouettes, &lt;i&gt;Master&amp;#39;s Thesis in Complex Adaptive Systems, Niklas Schr&amp;#228;der, Chalmers University of Technology, Gothenburg, Sweden, 2011&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;SoundLog, &lt;i&gt;Master&amp;#39;s Thesis in Information and Software Engineering, Andr&amp;#233; Filipe Mateus Ferreira, Instituto Superior T&amp;#233;cnico, Universidade T&amp;#233;cnica de Lisboa&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;ACCELEROMETERS USABILITY FOR DANGER TILT OFF-HIGHWAY VEHICLES AND SIGNAL FILTRATION WITH KALMAN FILTER, &lt;i&gt;Ondrej L&amp;#205;ŠKA, Kamil ŽIDEK, Technical University of Kosice, SjF, Department of biomedical engineering automation and measuring, Journal of applied science in the thermodynamics and fluid mechanics Vol. 4, No. 2/2010, ISSN 1802-9388&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Fast evaluation of Greeks in Monte Carlo calculations with the Adjoint Method, &lt;i&gt;Bachelor Thesis, Ivan Kuliš, Fachbereich Informatik und Mathematik, Institut f&amp;#252;r Mathematik, Johann Wolfgang Goethe Universit&amp;#228;t, Frankfurt am Main, 14.09.2011&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;3DMapping for Robotic Search and Rescue, &lt;i&gt;Peter Nelson, New College, 28 May 2011&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Quantitative structure-property relationship modeling algorithms, challenges and IT solutions, &lt;i&gt;Thesis, Ondrej Skrehota, FACULTY OF INFORMATIC, MASARYK UNIVERSITY, 2010&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Seismic Performance Assessment of Buildings Volume 2 – Implementation Guide, &lt;i&gt;ATC-58-1 75% Draft, APPLIED TECHNOLOGY COUNCIL, 201 Redwood Shores Parkway, Suite 240, Redwood City, California  94065, prepared for U.S. DEPARTMENT OF HOMELAND SECURITY (DHS) FEDERAL EMERGENCY MANAGEMENT AGENCY&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Use of Mobile Phones as Intelligent Sensors for Sound Input Analysis and Sleep State Detection, &lt;i&gt;Ondrej Krejcar, Jakub Jirka, Dalibor Janckulik, Sensors 2011, 11, 6037-6055, ISSN 1424-8220, 2011&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Design of a Wireless Acquisition System for a Digital Stethoscope, &lt;i&gt;Bachelor Thesis, Justin Miller, Faculty of Engineering &amp;amp; Surveying, University of Southern Queensland, ENG4112 Research Project, 2010&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Konzeption und Umsetzung einer RIA zur untersuchungsbegleitenden Erfassung von RNFLT-Scans und Untersuchung von Klassifikatoren f&amp;#252;r die diagnostische Unterst&amp;#252;tzung bei neurodegenerativen Erkrankungen am Beispiel der Multiplen Sklerose, &lt;i&gt;Diplomarbeit, Sebastian Bischoff, Fachbereich Informatik und Medien, Fachhochschule Brandenburg, 1.11.2009&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Ka`imiolakai ROV, &lt;i&gt;Team Limawa, Kapi&amp;#180;olani Community College&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Prototipo de una aplicaci&amp;#243;n inform&amp;#225;tica para gesti&amp;#243;n y mantenimiento de recursos pesquero, &lt;i&gt;Silvia Rodr&amp;#237;guez Rodr&amp;#237;guez, Jos&amp;#233; Juan Castro Hern&amp;#225;ndez, 2010&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;Elastic Properties of Growing 2D Foam, &lt;i&gt;Master&amp;#39;s Thesis, Michael Schindlberger, Physical Systems Biology Group, University of Zurich, 2011&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;h4&gt;University Course Work&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;Uni Muenster, Computer Vision und Mustererkennung (SS 2011)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Mon, 03 Dec 2012 19:49:57 GMT</pubDate><guid isPermaLink="false">Updated Wiki: References 20121203074957P</guid></item><item><title>Updated Wiki: Probability Distributions</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Probability Distributions&amp;version=8</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Probability Distributions&lt;/h1&gt;
In &lt;i&gt;&lt;a href="http://numerics.mathdotnet.com/api/MathNet.Numerics.Distributions/index.htm"&gt;MathNet.Numerics.Distributions&lt;/a&gt;&lt;/i&gt; we provide a wide range of probability distributions. Once parametrized, they can be used to sample non-uniform random numbers or investigate their statistical properties.&lt;br /&gt;&lt;br /&gt;All the distributions implement a basic set of operations such as computing the mean, standard deviation, density, etc. Because it is often numerically more stable and faster to compute quantities in the log domain, we also provide a selection of them, including Density, in the logarithmic domain with the &amp;quot;Ln&amp;quot; suffix, .e.g. DensityLn.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Distributions;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; mean = gamma.Mean;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; variance = gamma.Variance;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; entropy = gamma.Entropy;
&lt;span style="color:Green;"&gt;// ...&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; a = gamma.Density(2.3); &lt;span style="color:Green;"&gt;// pdf&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; b = gamma.DensityLn(2.3); &lt;span style="color:Green;"&gt;// ln(pdf)&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; c = gamma.CumulativeDistribution(0.7); &lt;span style="color:Green;"&gt;// cdf&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Parametrizing the Distributions&lt;/h3&gt;
There are many ways to parameterize a distribution in the literature. When using the default constructor, study carefully which parameters it requires. If they do not suite your needs, there will likely be static method which can construct the distribution for you with the parameters of your choice. For example, to construct a normal distribution with mean 0.0 and standard deviation 2.0 you can use &lt;span class="codeInline"&gt; var n = new Normal(0.0, 2.0); &lt;/span&gt;. However, if  you&amp;#39;d rather parameterize the normal distribution using a mean and precision, one can use the  following code instead: &lt;span class="codeInline"&gt; var n = Normal.WithMeanPrecision(0.0,0.5); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = Gamma.WithShapeScale(2.0, 0.75);
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Random Number Sampling&lt;/h3&gt;
Each  distribution provides methods to generate random numbers from  that  distribution. These random variate generators work by accessing the distribution&amp;#39;s member &lt;i&gt;RandomSource&lt;/i&gt; (which is a subclass of &lt;i&gt;System.Random&lt;/i&gt;, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Probability%20Distributions"&gt;Random Numbers&lt;/a&gt; for details) to provide uniform random numbers.  By default, this member is an instance of &lt;i&gt;System.Random&lt;/i&gt; but one can easily replace this with more sophisticated random number generators from &lt;i&gt;MathNet.Numerics.Random&lt;/i&gt;. Each distribution class has two static and two class methods: for each pair (static and class), one of them generates a single sample, the  other will generate an &lt;i&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/i&gt; of samples. The static methods allow  random number generation without  instantiating the actual class.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
gamma.RandomSource = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = gamma.Sample();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = gamma.Samples().Take(100).ToArray();
&lt;/pre&gt;&lt;/div&gt;Alternative using static methods (note that no intermediate value caching is possible this way and parameters must be validated on each call):&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; rnd = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = Gamma.Sample(rnd, 2.0, 1.5);
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = Gamma.Samples(rnd, 2.0, 1.5).Take(10).ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Probability Distributions in F#&lt;/h3&gt;
The F# extensions provide a few simple helper functions in the MathNet.Numerics.Distributions namespace to assign a specific random source to a distribution: &lt;i&gt;withRandom&lt;/i&gt;, &lt;i&gt;withSystemRandom&lt;/i&gt;, &lt;i&gt;withCryptoRandom&lt;/i&gt; and &lt;i&gt;withMersenneTwister&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;let rnd = Random.xorshift ()
let normal = Normal.WithMeanVariance(3.0, 1.5) |&amp;gt; withRandom rnd
let gamma = new Gamma(2.0, 1.5) |&amp;gt; withMersenneTwister
let cauchy = new Cauchy() |&amp;gt; withRandom (Random.mrg32k3aWith 10 false)

let samples = cauchy.Samples() |&amp;gt; Seq.take 100 |&amp;gt; List.ofSeq
let samples2 = Cauchy.Samples(rnd, 1.0, 3.0) |&amp;gt; Seq.take 20 |&amp;gt; List.ofSeq&lt;/pre&gt;
&lt;h2&gt;Discrete Distributions&lt;/h2&gt;
All discrete distributions implement the &lt;i&gt;IDiscreteDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28discrete%29"&gt;Discrete Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Bernoulli_distribution"&gt;Bernoulli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Binomial_distribution"&gt;Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution"&gt;Negative Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/geometric_distribution"&gt;Geometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypergeometric_distribution"&gt;Hybergeometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Poisson_distribution"&gt;Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Categorical_distribution"&gt;Categorical&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Conway%E2%80%93Maxwell%E2%80%93Poisson_distribution"&gt;Conway-Maxwell-Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Zipf%27s_law"&gt;Zipf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Continuous Distributions&lt;/h2&gt;
All continuous distributions implement the &lt;i&gt;IContinuousDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29"&gt;Continuous Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal_distribution"&gt;Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Log-normal_distribution"&gt;Log Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Beta_distribution"&gt;Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/cauchy_distribution"&gt;Cauchy&lt;/a&gt; (Cauchy-Lorentz)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi_distribution"&gt;Chi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi-square_distribution"&gt;Chi Square&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Erlang_distribution"&gt;Erlang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/exponential_distribution"&gt;Exponential&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/F-distribution"&gt;Fisher-Snedecor&lt;/a&gt; (F-Distribution)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Gamma_distribution"&gt;Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/inverse-gamma_distribution"&gt;Inverse Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Laplace_distribution"&gt;Laplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Pareto_distribution"&gt;Pareto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Rayleigh_distribution"&gt;Rayleigh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Stable_distribution"&gt;Stable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Student%27s_t-distribution"&gt;Stundets-T&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Weibull_distribution"&gt;Weibull&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Triangular&lt;/del&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Multivariate Distributions&lt;/h2&gt;
There is no shared interface for the multivariate distributions: as their domains can be quite different it would be hard to come up with a simple and clean but still useful unifying interface.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dirichlet_distribution"&gt;Dirichlet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Inverse-Wishart_distribution"&gt;Inverse Wishart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Matrix_normal_distribution"&gt;Matrix Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Multinomial_distribution"&gt;Multinomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal-gamma_distribution"&gt;Normal Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Wishart_distribution"&gt;Wishart&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Sat, 01 Dec 2012 01:24:11 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Probability Distributions 20121201012411A</guid></item><item><title>Updated Wiki: Probability Distributions</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Probability Distributions&amp;version=7</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Probability Distributions&lt;/h1&gt;
In &lt;i&gt;&lt;a href="http://numerics.mathdotnet.com/api/MathNet.Numerics.Distributions/index.htm"&gt;MathNet.Numerics.Distributions&lt;/a&gt;&lt;/i&gt; we provide a wide range of probability distributions. Once parametrized, they can be used to sample non-uniform random numbers or investigate their statistical properties.&lt;br /&gt;&lt;br /&gt;All the distributions implement a basic set of operations such as computing the mean, standard deviation, density, etc. Because it is often numerically more stable and faster to compute quantities in the log domain, we also provide a selection of them, including Density, in the logarithmic domain with the &amp;quot;Ln&amp;quot; suffix, .e.g. DensityLn.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Distributions;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; mean = gamma.Mean;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; variance = gamma.Variance;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; entropy = gamma.Entropy;
&lt;span style="color:Green;"&gt;// ...&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; a = gamma.Density(2.3); &lt;span style="color:Green;"&gt;// pdf&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; b = gamma.DensityLn(2.3); &lt;span style="color:Green;"&gt;// ln(pdf)&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; c = gamma.CumulativeDistribution(0.7); &lt;span style="color:Green;"&gt;// cdf&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Parametrizing the Distributions&lt;/h3&gt;
There are many ways to parameterize a distribution in the literature. When using the default constructor, study carefully which parameters it requires. If they do not suite your needs, there will likely be static method which can construct the distribution for you with the parameters of your choice. For example, to construct a normal distribution with mean 0.0 and standard deviation 2.0 you can use &lt;span class="codeInline"&gt; var n = new Normal(0.0, 2.0); &lt;/span&gt;. However, if  you&amp;#39;d rather parameterize the normal distribution using a mean and precision, one can use the  following code instead: &lt;span class="codeInline"&gt; var n = Normal.WithMeanPrecision(0.0,0.5); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = Gamma.WithShapeScale(2.0, 0.75);
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Random Number Sampling&lt;/h3&gt;
Each  distribution provides methods to generate random numbers from  that  distribution. These random variate generators work by accessing the distribution&amp;#39;s member &lt;i&gt;RandomSource&lt;/i&gt; (which is a subclass of &lt;i&gt;System.Random&lt;/i&gt;, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Probability%20Distributions"&gt;Random Numbers&lt;/a&gt; for details) to provide uniform random numbers.  By default, this member is an instance of &lt;i&gt;System.Random&lt;/i&gt; but one can easily replace this with more sophisticated random number generators from &lt;i&gt;MathNet.Numerics.Random&lt;/i&gt;. Each distribution class has two static and two class methods: for each pair (static and class), one of them generates a single sample, the  other will generate an &lt;i&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/i&gt; of samples. The static methods allow  random number generation without  instantiating the actual class.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
gamma.RandomSource = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = gamma.Sample();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = gamma.Samples().Take(100).ToArray();
&lt;/pre&gt;&lt;/div&gt;Alternative using static methods (note that no intermediate value caching is possible this way and parameters must be validated on each call):&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; rnd = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = Gamma.Sample(rnd, 2.0, 1.5);
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = Gamma.Samples(rnd, 2.0, 1.5).Take(10).ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Probability Distributions in F#&lt;/h3&gt;
The F# extensions provide a few simple helper functions in the MathNet.Numerics.Distributions namespace to assign a specific random source to a distribution: &lt;i&gt;withRandom&lt;/i&gt;, &lt;i&gt;withSystemRandom&lt;/i&gt;, &lt;i&gt;withCryptoRandom&lt;/i&gt; and &lt;i&gt;withMersenneTwister&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;let rnd = Random.xorshift ()
let normal = Normal.WithMeanVariance(3.0, 1.5) |&amp;gt; withRandom rnd
let gamma = new Gamma(2.0, 1.5) |&amp;gt; withMersenneTwister
let cauchy = new Cauchy() |&amp;gt; withRandom (Random.mrg32k3aWith 10 false)

let samples = cauchy.Samples() |&amp;gt; Seq.take 100 |&amp;gt; List.ofSeq
let samples2 = Cauchy.Samples(rnd, 1.0, 3.0) |&amp;gt; Seq.take 20 |&amp;gt; List.ofSeq&lt;/pre&gt;
&lt;h2&gt;Discrete Distributions&lt;/h2&gt;
All discrete distributions implement the &lt;i&gt;IDiscreteDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28discrete%29"&gt;Discrete Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Bernoulli_distribution"&gt;Bernoulli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Binomial_distribution"&gt;Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution"&gt;Negative Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/geometric_distribution"&gt;Geometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypergeometric_distribution"&gt;Hybergeometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Poisson_distribution"&gt;Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Categorical_distribution"&gt;Categorical&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Conway%E2%80%93Maxwell%E2%80%93Poisson_distribution"&gt;Conway-Maxwell-Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Zipf%27s_law"&gt;Zipf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Continuous Distributions&lt;/h2&gt;
All continuous distributions implement the &lt;i&gt;IContinuousDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29"&gt;Continuous Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal_distribution"&gt;Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Log-normal_distribution"&gt;Log Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Beta_distribution"&gt;Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/cauchy_distribution"&gt;Cauchy&lt;/a&gt; (Cauchy-Lorentz)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi_distribution"&gt;Chi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi-square_distribution"&gt;Chi Square&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Erlang_distribution"&gt;Erlang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/exponential_distribution"&gt;Exponential&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/F-distribution"&gt;Fisher-Snedecor&lt;/a&gt; (F-Distribution)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Gamma_distribution"&gt;Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/inverse-gamma_distribution"&gt;Inverse Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Laplace_distribution"&gt;Laplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Pareto_distribution"&gt;Pareto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Rayleigh_distribution"&gt;Rayleigh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Stable_distribution"&gt;Stable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Student%27s_t-distribution"&gt;Stundets-T&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Weibull_distribution"&gt;Weibull&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Triangular&lt;/del&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Multivariate Distributions&lt;/h2&gt;
There is no shared interface for the multivariate distributions: as their domains can be quite different it would be hard to come up with a simple and clean but still useful unifying interface.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dirichlet_distribution"&gt;Dirichlet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Inverse-Wishart_distribution"&gt;Inverse Wishart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Matrix_normal_distribution"&gt;Matrix Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Multinomial_distribution"&gt;Multinomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal-gamma_distribution"&gt;Normal Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Wishart_distribution"&gt;Wishart&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 22:39:53 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Probability Distributions 20121130103953P</guid></item><item><title>Updated Wiki: Probability Distributions</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Probability Distributions&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Probability Distributions&lt;/h1&gt;
In &lt;i&gt;&lt;a href="http://numerics.mathdotnet.com/api/MathNet.Numerics.Distributions/index.htm"&gt;MathNet.Numerics.Distributions&lt;/a&gt;&lt;/i&gt; we provide a wide range of probability distributions. Once parametrized, they can be used to sample non-uniform random numbers or investigate their statistical properties.&lt;br /&gt;&lt;br /&gt;All the distributions implement a basic set of operations such as computing the mean, standard deviation, density, etc. Because it is often numerically more stable and faster to compute quantities in the log domain, we also provide a selection of them, including Density, in the logarithmic domain with the &amp;quot;Ln&amp;quot; suffix, .e.g. DensityLn.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Distributions;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; mean = gamma.Mean;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; variance = gamma.Variance;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; entropy = gamma.Entropy;
&lt;span style="color:Green;"&gt;// ...&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; a = gamma.Density(2.3); &lt;span style="color:Green;"&gt;// pdf&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; b = gamma.DensityLn(2.3); &lt;span style="color:Green;"&gt;// ln(pdf)&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; c = gamma.CumulativeDistribution(0.7); &lt;span style="color:Green;"&gt;// cdf&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Random Number Sampling&lt;/h3&gt;
Each  distribution provides methods to generate random numbers from  that  distribution. These random variate generators work by accessing the distribution&amp;#39;s member &lt;i&gt;RandomSource&lt;/i&gt; (which is a subclass of &lt;i&gt;System.Random&lt;/i&gt;, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Probability%20Distributions"&gt;Random Numbers&lt;/a&gt; for details) to provide uniform random numbers.  By default, this member is an instance of &lt;i&gt;System.Random&lt;/i&gt; but one can easily replace this with more sophisticated random number generators from &lt;i&gt;MathNet.Numerics.Random&lt;/i&gt;. Each distribution class has two static and two class methods: for each pair (static and class), one of them generates a single sample, the  other will generate an &lt;i&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/i&gt; of samples. The static methods allow  random number generation without  instantiating the actual class.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Distributions;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
gamma.RandomSource = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = gamma.Sample();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = gamma.Samples().Take(100).ToArray();
&lt;/pre&gt;&lt;/div&gt;Alternative using static methods (note that no intermediate value caching is possible this way and parameters must be validated on each call):&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; rnd = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = Gamma.Sample(rnd, 2.0, 1.5);
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = Gamma.Samples(rnd, 2.0, 1.5).Take(10).ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Parametrizing the Distributions&lt;/h3&gt;
There are many ways to parameterize a distribution in the literature. When using the default constructor, study carefully which parameters it requires. If they do not suite your needs, there will likely be static method which can construct the distribution for you with the parameters of your choice. For example, to construct a normal distribution with mean 0.0 and standard deviation 2.0 you can use &lt;span class="codeInline"&gt; var n = new Normal(0.0, 2.0); &lt;/span&gt;. However, if  you&amp;#39;d rather parameterize the normal distribution using a mean and precision, one can use the  following code instead: &lt;span class="codeInline"&gt; var n = Normal.WithMeanPrecision(0.0,0.5); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = Gamma.WithShapeScale(2.0, 0.75);
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Probability Distributions in F#&lt;/h3&gt;
The F# extensions provide a few simple helper functions in the MathNet.Numerics.Distributions namespace to assign a specific random source to a distribution: &lt;i&gt;withRandom&lt;/i&gt;, &lt;i&gt;withSystemRandom&lt;/i&gt;, &lt;i&gt;withCryptoRandom&lt;/i&gt; and &lt;i&gt;withMersenneTwister&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;let rnd = Random.xorshift ()
let normal = Normal.WithMeanVariance(3.0, 1.5) |&amp;gt; withRandom rnd
let gamma = new Gamma(2.0, 1.5) |&amp;gt; withMersenneTwister
let cauchy = new Cauchy() |&amp;gt; withRandom (Random.mrg32k3aWith 10 false)

let samples = cauchy.Samples() |&amp;gt; Seq.take 100 |&amp;gt; List.ofSeq
let samples2 = Cauchy.Samples(rnd, 1.0, 3.0) |&amp;gt; Seq.take 20 |&amp;gt; List.ofSeq&lt;/pre&gt;
&lt;h2&gt;Discrete Distributions&lt;/h2&gt;
All discrete distributions implement the &lt;i&gt;IDiscreteDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28discrete%29"&gt;Discrete Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Bernoulli_distribution"&gt;Bernoulli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Binomial_distribution"&gt;Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution"&gt;Negative Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/geometric_distribution"&gt;Geometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypergeometric_distribution"&gt;Hybergeometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Poisson_distribution"&gt;Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Categorical_distribution"&gt;Categorical&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Conway%E2%80%93Maxwell%E2%80%93Poisson_distribution"&gt;Conway-Maxwell-Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Zipf%27s_law"&gt;Zipf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Continuous Distributions&lt;/h2&gt;
All continuous distributions implement the &lt;i&gt;IContinuousDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29"&gt;Continuous Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal_distribution"&gt;Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Log-normal_distribution"&gt;Log Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Beta_distribution"&gt;Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/cauchy_distribution"&gt;Cauchy&lt;/a&gt; (Cauchy-Lorentz)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi_distribution"&gt;Chi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi-square_distribution"&gt;Chi Square&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Erlang_distribution"&gt;Erlang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/exponential_distribution"&gt;Exponential&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/F-distribution"&gt;Fisher-Snedecor&lt;/a&gt; (F-Distribution)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Gamma_distribution"&gt;Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/inverse-gamma_distribution"&gt;Inverse Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Laplace_distribution"&gt;Laplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Pareto_distribution"&gt;Pareto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Rayleigh_distribution"&gt;Rayleigh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Stable_distribution"&gt;Stable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Student%27s_t-distribution"&gt;Stundets-T&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Weibull_distribution"&gt;Weibull&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Triangular&lt;/del&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Multivariate Distributions&lt;/h2&gt;
There is no shared interface for the multivariate distributions: as their domains can be quite different it would be hard to come up with a simple and clean but still useful unifying interface.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dirichlet_distribution"&gt;Dirichlet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Inverse-Wishart_distribution"&gt;Inverse Wishart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Matrix_normal_distribution"&gt;Matrix Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Multinomial_distribution"&gt;Multinomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal-gamma_distribution"&gt;Normal Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Wishart_distribution"&gt;Wishart&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 22:38:40 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Probability Distributions 20121130103840P</guid></item><item><title>Updated Wiki: Probability Distributions</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Probability Distributions&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Probability Distributions&lt;/h1&gt;
In &lt;i&gt;&lt;a href="http://numerics.mathdotnet.com/api/MathNet.Numerics.Distributions/index.htm"&gt;MathNet.Numerics.Distributions&lt;/a&gt;&lt;/i&gt; we provide a wide range of probability distributions. Once parametrized, they can be used to sample non-uniform random numbers or investigate their statistical properties.&lt;br /&gt;&lt;br /&gt;All the distributions implement a basic set of operations such as computing the mean, standard deviation, density, etc. Because it is often numerically more stable and faster to compute quantities in the log domain, we also provide a selection of them, including Density, in the logarithmic domain with the &amp;quot;Ln&amp;quot; suffix, .e.g. DensityLn.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Distributions;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; mean = gamma.Mean;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; variance = gamma.Variance;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; entropy = gamma.Entropy;
&lt;span style="color:Green;"&gt;// ...&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; a = gamma.Density(2.3); &lt;span style="color:Green;"&gt;// pdf&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; b = gamma.DensityLn(2.3); &lt;span style="color:Green;"&gt;// ln(pdf)&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; c = gamma.CumulativeDistribution(0.7); &lt;span style="color:Green;"&gt;// cdf&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Random Number Sampling&lt;/h3&gt;
Each  distribution provides methods to generate random numbers from  that  distribution. These random variate generators work by accessing the distribution&amp;#39;s member &lt;i&gt;RandomSource&lt;/i&gt; (which is a subclass of &lt;i&gt;System.Random&lt;/i&gt;, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Probability%20Distributions"&gt;Random Numbers&lt;/a&gt; for details) to provide uniform random numbers.  By default, this member is an instance of &lt;i&gt;System.Random&lt;/i&gt; but one can easily replace this with more sophisticated random number generators from &lt;i&gt;MathNet.Numerics.Random&lt;/i&gt;. Each distribution class has two static and two class methods: for each pair (static and class), one of them generates a single sample, the  other will generate an &lt;i&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/i&gt; of samples. The static methods allow  random number generation without  instantiating the actual class.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Distributions;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
gamma.RandomSource = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = gamma.Sample();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = gamma.Samples().Take(100).ToArray();
&lt;/pre&gt;&lt;/div&gt;Alternative using static methods (note that no intermediate value caching is possible this way and parameters must be validated on each call):&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; rnd = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = Gamma.Sample(rnd, 2.0, 1.5);
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = Gamma.Samples(rnd, 2.0, 1.5).Take(10).ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Parametrizing the Distributions&lt;/h3&gt;
There are many ways to parameterize a distribution in the literature. When using the default constructor, study carefully which parameters it requires. If they do not suite your needs, there will likely be static method which can construct the distribution for you with the parameters of your choice. For example, to construct a normal distribution with mean 0.0 and standard deviation 2.0 you can use &lt;span class="codeInline"&gt; var n = new Normal(0.0, 2.0); &lt;/span&gt;. However, if  you&amp;#39;d rather parameterize the normal distribution using a mean and precision, one can use the  following code instead: &lt;span class="codeInline"&gt; var n = Normal.WithMeanPrecision(0.0,0.5); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = Gamma.WithShapeScale(2.0, 0.75);
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Probability Distributions in F#&lt;/h2&gt;
The F# extensions provide a few simple helper functions in the MathNet.Numerics.Distributions namespace to assign a specific random source to a distribution: &lt;i&gt;withRandom&lt;/i&gt;, &lt;i&gt;withSystemRandom&lt;/i&gt;, &lt;i&gt;withCryptoRandom&lt;/i&gt; and &lt;i&gt;withMersenneTwister&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;let rnd = Random.xorshift ()
let normal = Normal.WithMeanVariance(3.0, 1.5) |&amp;gt; withRandom rnd
let gamma = new Gamma(2.0, 1.5) |&amp;gt; withMersenneTwister
let cauchy = new Cauchy() |&amp;gt; withRandom (Random.mrg32k3aWith 10 false)

let samples = cauchy.Samples() |&amp;gt; Seq.take 100 |&amp;gt; List.ofSeq
let samples2 = Cauchy.Samples(rnd, 1.0, 3.0) |&amp;gt; Seq.take 20 |&amp;gt; List.ofSeq&lt;/pre&gt;
&lt;h2&gt;Discrete Distributions&lt;/h2&gt;
All discrete distributions implement the &lt;i&gt;IDiscreteDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28discrete%29"&gt;Discrete Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Bernoulli_distribution"&gt;Bernoulli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Binomial_distribution"&gt;Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution"&gt;Negative Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/geometric_distribution"&gt;Geometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypergeometric_distribution"&gt;Hybergeometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Poisson_distribution"&gt;Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Categorical_distribution"&gt;Categorical&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Conway%E2%80%93Maxwell%E2%80%93Poisson_distribution"&gt;Conway-Maxwell-Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Zipf%27s_law"&gt;Zipf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Continuous Distributions&lt;/h2&gt;
All continuous distributions implement the &lt;i&gt;IContinuousDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29"&gt;Continuous Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal_distribution"&gt;Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Log-normal_distribution"&gt;Log Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Beta_distribution"&gt;Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/cauchy_distribution"&gt;Cauchy&lt;/a&gt; (Cauchy-Lorentz)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi_distribution"&gt;Chi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi-square_distribution"&gt;Chi Square&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Erlang_distribution"&gt;Erlang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/exponential_distribution"&gt;Exponential&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/F-distribution"&gt;Fisher-Snedecor&lt;/a&gt; (F-Distribution)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Gamma_distribution"&gt;Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/inverse-gamma_distribution"&gt;Inverse Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Laplace_distribution"&gt;Laplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Pareto_distribution"&gt;Pareto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Rayleigh_distribution"&gt;Rayleigh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Stable_distribution"&gt;Stable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Student%27s_t-distribution"&gt;Stundets-T&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Weibull_distribution"&gt;Weibull&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Triangular&lt;/del&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Multivariate Distributions&lt;/h2&gt;
There is no shared interface for the multivariate distributions: as their domains can be quite different it would be hard to come up with a simple and clean but still useful unifying interface.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dirichlet_distribution"&gt;Dirichlet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Inverse-Wishart_distribution"&gt;Inverse Wishart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Matrix_normal_distribution"&gt;Matrix Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Multinomial_distribution"&gt;Multinomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal-gamma_distribution"&gt;Normal Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Wishart_distribution"&gt;Wishart&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 22:38:20 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Probability Distributions 20121130103820P</guid></item><item><title>Updated Wiki: Probability Distributions</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Probability Distributions&amp;version=4</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Probability Distributions&lt;/h1&gt;
In &lt;i&gt;&lt;a href="http://numerics.mathdotnet.com/api/MathNet.Numerics.Distributions/index.htm"&gt;MathNet.Numerics.Distributions&lt;/a&gt;&lt;/i&gt; we provide a wide range of probability distributions. Once parametrized, they can be used to sample non-uniform random numbers or investigate their statistical properties.&lt;br /&gt;&lt;br /&gt;All the distributions implement a basic set of operations such as computing the mean, standard deviation, density, etc. Because it is often numerically more stable and faster to compute quantities in the log domain, we also provide a selection of them, including Density, in the logarithmic domain with the &amp;quot;Ln&amp;quot; suffix, .e.g. DensityLn.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Distributions;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; mean = gamma.Mean;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; variance = gamma.Variance;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; entropy = gamma.Entropy;
&lt;span style="color:Green;"&gt;// ...&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; a = gamma.Density(2.3); &lt;span style="color:Green;"&gt;// pdf&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; b = gamma.DensityLn(2.3); &lt;span style="color:Green;"&gt;// ln(pdf)&lt;/span&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; c = gamma.CumulativeDistribution(0.7); &lt;span style="color:Green;"&gt;// cdf&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Random Number Sampling&lt;/h3&gt;
Each  distribution provides methods to generate random numbers from  that  distribution. These random variate generators work by accessing the distribution&amp;#39;s member &lt;i&gt;RandomSource&lt;/i&gt; (which is a subclass of &lt;i&gt;System.Random&lt;/i&gt;, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Probability%20Distributions"&gt;Random Numbers&lt;/a&gt; for details) to provide uniform random numbers.  By default, this member is an instance of &lt;i&gt;System.Random&lt;/i&gt; but one can easily replace this with more sophisticated random number generators from &lt;i&gt;MathNet.Numerics.Random&lt;/i&gt;. Each distribution class has two static and two class methods: for each pair (static and class), one of them generates a single sample, the  other will generate an &lt;i&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/i&gt; of samples. The static methods allow  random number generation without  instantiating the actual class.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Distributions;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; Gamma(2.0, 1.5);
gamma.RandomSource = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = gamma.Sample();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = gamma.Samples().Take(100).ToArray();
&lt;/pre&gt;&lt;/div&gt;Alternative using static methods (note that no intermediate value caching is possible this way and parameters must be validated on each call):&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; rnd = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister();
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = Gamma.Sample(rnd, 2.0, 1.5);
&lt;span style="color:Blue;"&gt;double&lt;/span&gt;[] b = Gamma.Samples(rnd, 2.0, 1.5).Take(10).ToArray();
&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Parametrizing the Distributions&lt;/h3&gt;
There are many ways to parameterize a distribution in the literature. When using the default constructor, study carefully which parameters it requires. If they do not suite your needs, there will likely be static method which can construct the distribution for you with the parameters of your choice. For example, to construct a normal distribution with mean 0.0 and standard deviation 2.0 you can use &lt;span class="codeInline"&gt; var n = new Normal(0.0, 2.0); &lt;/span&gt;. However, if  you&amp;#39;d rather parameterize the normal distribution using a mean and precision, one can use the  following code instead: &lt;span class="codeInline"&gt; var n = Normal.WithMeanPrecision(0.0,0.5); &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; gamma = Gamma.WithShapeScale(2.0, 0.75);
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Discrete Distributions&lt;/h2&gt;
All discrete distributions implement the &lt;i&gt;IDiscreteDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28discrete%29"&gt;Discrete Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Bernoulli_distribution"&gt;Bernoulli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Binomial_distribution"&gt;Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution"&gt;Negative Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/geometric_distribution"&gt;Geometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypergeometric_distribution"&gt;Hybergeometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Poisson_distribution"&gt;Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Categorical_distribution"&gt;Categorical&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Conway%E2%80%93Maxwell%E2%80%93Poisson_distribution"&gt;Conway-Maxwell-Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Zipf%27s_law"&gt;Zipf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Continuous Distributions&lt;/h2&gt;
All continuous distributions implement the &lt;i&gt;IContinuousDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29"&gt;Continuous Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal_distribution"&gt;Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Log-normal_distribution"&gt;Log Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Beta_distribution"&gt;Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/cauchy_distribution"&gt;Cauchy&lt;/a&gt; (Cauchy-Lorentz)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi_distribution"&gt;Chi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi-square_distribution"&gt;Chi Square&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Erlang_distribution"&gt;Erlang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/exponential_distribution"&gt;Exponential&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/F-distribution"&gt;Fisher-Snedecor&lt;/a&gt; (F-Distribution)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Gamma_distribution"&gt;Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/inverse-gamma_distribution"&gt;Inverse Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Laplace_distribution"&gt;Laplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Pareto_distribution"&gt;Pareto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Rayleigh_distribution"&gt;Rayleigh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Stable_distribution"&gt;Stable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Student%27s_t-distribution"&gt;Stundets-T&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Weibull_distribution"&gt;Weibull&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Triangular&lt;/del&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Multivariate Distributions&lt;/h2&gt;
There is no shared interface for the multivariate distributions: as their domains can be quite different it would be hard to come up with a simple and clean but still useful unifying interface.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dirichlet_distribution"&gt;Dirichlet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Inverse-Wishart_distribution"&gt;Inverse Wishart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Matrix_normal_distribution"&gt;Matrix Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Multinomial_distribution"&gt;Multinomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal-gamma_distribution"&gt;Normal Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Wishart_distribution"&gt;Wishart&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 22:15:06 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Probability Distributions 20121130101506P</guid></item><item><title>Updated Wiki: Probability Distributions</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Probability Distributions&amp;version=3</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Probability Distributions&lt;/h1&gt;
In &lt;i&gt;&lt;a href="http://numerics.mathdotnet.com/api/MathNet.Numerics.Distributions/index.htm"&gt;MathNet.Numerics.Distributions&lt;/a&gt;&lt;/i&gt; we provide a wide range of probability distributions. Once parametrized, they can be used to sample non-uniform random numbers or investigate their statistical properties.&lt;br /&gt;&lt;br /&gt;All the distributions implement a basic set of operations such as computing the mean, standard deviation, density, etc. Because it is often numerically more stable and faster to compute quantities in the log domain, we also provide a selection of them, including Density, in the logarithmic domain with the &amp;quot;Ln&amp;quot; suffix, .e.g. DensityLn.&lt;br /&gt;
&lt;h3&gt;Random Number Sampling&lt;/h3&gt;
Each  distribution provides methods to generate random numbers from  that  distribution. These random variate generators work by accessing the distribution&amp;#39;s member &lt;i&gt;RandomSource&lt;/i&gt; (which is a subclass of &lt;i&gt;System.Random&lt;/i&gt;, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Probability%20Distributions"&gt;Random Numbers&lt;/a&gt; for details) to provide uniform random numbers.  By default, this member is an instance of &lt;i&gt;System.Random&lt;/i&gt; but one can easily replace this with more sophisticated random number generators from &lt;i&gt;MathNet.Numerics.Random&lt;/i&gt;. Each distribution class has two static and two class methods: for each pair (static and class), one of them generates a single sample, the  other will generate an &lt;i&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/i&gt; of samples. The static methods allow  random number generation without  instantiating the actual class.&lt;br /&gt;
&lt;h3&gt;Parametrizing the Distributions&lt;/h3&gt;
There are many ways to parameterize a distribution in the literature. When using the default constructor, study carefully which parameters it requires. If they do not suite your needs, there will likely be static method which can construct the distribution for you with the parameters of your choice. For example, to construct a normal distribution with mean 0.0 and standard deviation 2.0 you can use &lt;span class="codeInline"&gt; var n = new Normal(0.0, 2.0); &lt;/span&gt;. However, if  you&amp;#39;d rather parameterize the normal distribution using a mean and precision, one can use the  following code instead: &lt;span class="codeInline"&gt; var n = Normal.WithMeanPrecision(0.0,0.5); &lt;/span&gt;&lt;br /&gt;
&lt;h2&gt;Discrete Distributions&lt;/h2&gt;
All discrete distributions implement the &lt;i&gt;IDiscreteDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28discrete%29"&gt;Discrete Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Bernoulli_distribution"&gt;Bernoulli&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Binomial_distribution"&gt;Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Negative_binomial_distribution"&gt;Negative Binomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/geometric_distribution"&gt;Geometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Hypergeometric_distribution"&gt;Hybergeometric&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Poisson_distribution"&gt;Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Categorical_distribution"&gt;Categorical&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Conway%E2%80%93Maxwell%E2%80%93Poisson_distribution"&gt;Conway-Maxwell-Poisson&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Zipf%27s_law"&gt;Zipf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Continuous Distributions&lt;/h2&gt;
All continuous distributions implement the &lt;i&gt;IContinuousDistribution&lt;/i&gt; and &lt;i&gt;IDistribution&lt;/i&gt; intefaces.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Uniform_distribution_%28continuous%29"&gt;Continuous Uniform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal_distribution"&gt;Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Log-normal_distribution"&gt;Log Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Beta_distribution"&gt;Beta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/cauchy_distribution"&gt;Cauchy&lt;/a&gt; (Cauchy-Lorentz)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi_distribution"&gt;Chi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Chi-square_distribution"&gt;Chi Square&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Erlang_distribution"&gt;Erlang&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/exponential_distribution"&gt;Exponential&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/F-distribution"&gt;Fisher-Snedecor&lt;/a&gt; (F-Distribution)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Gamma_distribution"&gt;Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/inverse-gamma_distribution"&gt;Inverse Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Laplace_distribution"&gt;Laplace&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Pareto_distribution"&gt;Pareto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Rayleigh_distribution"&gt;Rayleigh&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Stable_distribution"&gt;Stable&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Student%27s_t-distribution"&gt;Stundets-T&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Weibull_distribution"&gt;Weibull&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;Triangular&lt;/del&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Multivariate Distributions&lt;/h2&gt;
There is no shared interface for the multivariate distributions: as their domains can be quite different it would be hard to come up with a simple and clean but still useful unifying interface.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Dirichlet_distribution"&gt;Dirichlet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Inverse-Wishart_distribution"&gt;Inverse Wishart&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Matrix_normal_distribution"&gt;Matrix Normal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Multinomial_distribution"&gt;Multinomial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Normal-gamma_distribution"&gt;Normal Gamma&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Wishart_distribution"&gt;Wishart&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 22:03:35 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Probability Distributions 20121130100335P</guid></item><item><title>Updated Wiki: Random Numbers</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Random Numbers&amp;version=7</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Random Number Generation&lt;/h1&gt;
The .Net Framwork comes with two (pseudo) random number sources: &lt;b&gt;&lt;i&gt;System.Random&lt;/i&gt;&lt;/b&gt; and &lt;i&gt;System.Security.Cryptography.RNGCryptoServiceProvider&lt;/i&gt;. The former is commonly used throughout the .Net space for general purpose &lt;b&gt;uniform&lt;/b&gt; random number generation, the latter in selected cases where random data is needed for cryptoghraphic applications and more &amp;quot;randomness&amp;quot; is required, at the cost of being slower. If you&amp;#39;re not sure which one to choose, where randomness is not critical we suggest to simply use &lt;i&gt;System.Random&lt;/i&gt;, or &lt;i&gt;MersenneTwister&lt;/i&gt; if it turns out to be too slow.&lt;br /&gt;&lt;br /&gt;Math.NET Numerics provides a whole set of alternative &lt;b&gt;pseudo random number generators (RNG)&lt;/b&gt;. Yet, in order to stay fully compatible with other code expecting a traditional &lt;i&gt;System.Random&lt;/i&gt; instance, all our providers derive from &lt;i&gt;System.Random&lt;/i&gt; (via our &lt;i&gt;AbstractRandomNumberGenerator&lt;/i&gt; class) and can thus be used directly in place of &lt;i&gt;System.Random&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="color:Black;background-color:White;"&gt;&lt;pre&gt;
&lt;span style="color:Blue;"&gt;using&lt;/span&gt; MathNet.Numerics.Random;
&lt;span style="color:Blue;"&gt;var&lt;/span&gt; mersenneTwister = &lt;span style="color:Blue;"&gt;new&lt;/span&gt; MersenneTwister(42);
&lt;span style="color:Blue;"&gt;double&lt;/span&gt; a = mersenneTwister.NextDouble();
&lt;span style="color:Blue;"&gt;decimal&lt;/span&gt; b = mersenneTwister.NextDecimal();
&lt;span style="color:Blue;"&gt;long&lt;/span&gt; c = mersenneTwiser.NextFullRangeInt64();
&lt;/pre&gt;&lt;/div&gt;
&lt;h2&gt;Random Number Generators&lt;/h2&gt;
Namespace: MathNet.Numerics.Random&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;MersenneTwister&lt;/b&gt;: Mersenne Twister 19937 generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Xorshift&lt;/b&gt;: Multiply-with-carry XOR-shift generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mcg31m1&lt;/b&gt;: Multiplicative congruental generator using a modulus of 2^31-1 and a multiplier of 1132489760&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mcg59&lt;/b&gt;: Multiplicative congruental generator using a modulus of 2^59 and a multiplier of 13^13&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WH1982&lt;/b&gt;: Wichmann-Hill&amp;#39;s 1982 combined multiplicative congruental generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WH2006&lt;/b&gt;: Wichmann-Hill&amp;#39;s 2006 combined multiplicative congruental generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mrg32k3a&lt;/b&gt;: 32-bit combined multiple recursive generator with 2 components of order 3&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Palf&lt;/b&gt;: Parallel Additive Lagged Fibonacci generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SystemCryptoRandomNumberGenerator&lt;/b&gt;: Generator using the RNGCryptoServiceProvider of the .Net framework. &lt;i&gt;Note: Not available in portable builds&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Seeding and thread safety&lt;/h2&gt;
All generator constructors optionally accept two parameters: an integer for seeding and a boolean to enable thread-safety if needed. An exception is the crypto generator, where a custom seed would defeat its purpose.&lt;br /&gt;&lt;br /&gt;If you create two instances of the same generator and seed, they will generate exactly the same number sequence. If no seed is provided, most generator fall back to a time-based seed, which is dangerous when creating multiple generators in quick succession (since time resolution is limited, some can end up with the same seed). It is therefore essential to reuse generators instead of creating new ones every time a random number is needed, or at least to have a single random source to generate random seeds for each.&lt;br /&gt;&lt;br /&gt;For performance and design reasons, generators are not thread-safe out of the box. However, since sharing generators is recommended, thread-safe number generation can optionally be enabled with the second, boolean constructor parameter.&lt;br /&gt;
&lt;h2&gt;Non-Standard Ranges&lt;/h2&gt;
Often you don&amp;#39;t need a random number between 0 and 1 but in a different range, or e.g. a random integer of the full integer type range. Generating such random numbers correctly is non-trivial if the distribution should remain uniform (including at 0, min, max etc.). That&amp;#39;s why we also provide a set of extension methods (in addition to &lt;i&gt;Next&lt;/i&gt; and &lt;i&gt;NextDouble&lt;/i&gt;) defined directly on &lt;i&gt;System.Random&lt;/i&gt;, so the can be used not only on our custom RNGs but even with &lt;i&gt;System.Random&lt;/i&gt; instances:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;NextInt64&lt;/b&gt;: Returns a 64-bit signed integer greater than or equal to 0 and less than Int64.MaxValue. This is therefore the equivalent of the Next method but for 64-bit integers instead of 32-bit integers. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextFullRangeInt32&lt;/b&gt;: Returns a 32-bit signed integer of the full range, including 0, negative numbers, Int32.MinValue and Int32.MaxValue. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextFullRangeInt64&lt;/b&gt;: Returns a 64-bit signed integer of the full range, including 0, negative numbers, Int64.MinValue and Int64.MaxValue. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextDecimal&lt;/b&gt;: Returns a decimal floating point number greater than or equal to 0.0 and less than 1.0. Distributed uniformly.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Non-Uniform Random Numbers&lt;/h2&gt;
If you need to generate non-uniform random numbers, you can combine any of these generators with our probability distributions, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Probability%20Distributions&amp;referringTitle=Random%20Numbers"&gt;Probability Distributions&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Random Numbers in F#&lt;/h2&gt;
The F# extensions provide a &lt;i&gt;Random&lt;/i&gt; module in the &lt;i&gt;MathNet.Numerics.Random&lt;/i&gt; namespace that tries to make using our random number generators in F# a bit simpler and more idiomatic.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class="codeInline"&gt;Random.seed ()&lt;/span&gt;: generates a GUID based seed&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.timeSeed ()&lt;/span&gt;: generates a time-based seed&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;span class="codeInline"&gt;Random.system()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.systemWith seed&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.crypto()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.cryptoWith threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.mersenneTwister()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.mersenneTwisterWith seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.xorshift()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.xorshiftWith seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.wh1982()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.wh1982With seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.wh2006()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.wh2006With seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.palf()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.palfWith seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.mcg59()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.mcg59With seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.mcg31m1()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.mcg31m1With seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.mrg32k3a()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.mrg32k3aWith seed threadSafe&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 21:49:01 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Random Numbers 20121130094901P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://mathnetnumerics.codeplex.com/documentation?version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Math.NET Numerics Documentation&lt;/h1&gt;
Math.NET Numerics is an opensource numerical library for .Net, Silverlight, Metro and Mono. This topic lists documentation that will help you use the toolkit in your own application. In addition to the user guide, there&amp;#39;s also a condensed &lt;a href="http://api.mathdotnet.com/"&gt;API Reference&lt;/a&gt; available, or if you prefer examples the sample code project may give you some ideas.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://api.mathdotnet.com/"&gt;API Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;C# Code Samples: &lt;a href="https://github.com/mathnet/mathnet-numerics/tree/master/src/Examples"&gt;sources&lt;/a&gt; or as &lt;a href="http://nuget.org/packages/MathNet.Numerics.Sample"&gt;NuGet source package&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;F# Code Samples: &lt;a href="https://github.com/mathnet/mathnet-numerics/tree/master/src/FSharpExamples"&gt;sources&lt;/a&gt; or as &lt;a href="http://nuget.org/packages/MathNet.Numerics.FSharp.Sample"&gt;NuGet source package&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;User Guide&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Random%20Numbers&amp;referringTitle=Documentation"&gt;Random Numbers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Probability%20Distributions&amp;referringTitle=Documentation"&gt;Probability Distributions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Statistics&amp;referringTitle=Documentation"&gt;Statistics&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Linear%20Algebra&amp;referringTitle=Documentation"&gt;Linear Algebra&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Special%20Functions&amp;referringTitle=Documentation"&gt;Special Functions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Interpolation&amp;referringTitle=Documentation"&gt;Interpolation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Integration&amp;referringTitle=Documentation"&gt;Integration&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Integral%20Transforms&amp;referringTitle=Documentation"&gt;Integral Transforms&lt;/a&gt; (FFT etc.)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Number%20Theory&amp;referringTitle=Documentation"&gt;Number Theory&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Combinatorics&amp;referringTitle=Documentation"&gt;Combinatorics&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Advanced Topics&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Precision&lt;/li&gt;
&lt;li&gt;Parallel Execution&lt;/li&gt;
&lt;li&gt;&lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Native%20Providers&amp;referringTitle=Documentation"&gt;Native Linear Algebra Providers&lt;/a&gt; (MKL, ACML)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 21:44:39 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20121130094439P</guid></item><item><title>Updated Wiki: Random Numbers</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Random Numbers&amp;version=6</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Random Number Generation&lt;/h1&gt;
The .Net Framwork comes with two (pseudo) random number sources: &lt;b&gt;&lt;i&gt;System.Random&lt;/i&gt;&lt;/b&gt; and &lt;i&gt;System.Security.Cryptography.RNGCryptoServiceProvider&lt;/i&gt;. The former is commonly used throughout the .Net space for general purpose random number generation, the latter in selected cases where random data is needed for cryptoghraphic applications and more &amp;quot;randomness&amp;quot; is required, at the cost of being slower. If you&amp;#39;re not sure which one to choose, where randomness is not critical we suggest to simply use &lt;i&gt;System.Random&lt;/i&gt;, or &lt;i&gt;MersenneTwister&lt;/i&gt; if it turns out to be too slow.&lt;br /&gt;&lt;br /&gt;Math.NET Numerics provides a whole set of alternative &lt;b&gt;pseudo random number generators (RNG)&lt;/b&gt;. Yet, in order to stay fully compatible with other code expecting a traditional &lt;i&gt;System.Random&lt;/i&gt; instance, all our providers derive from &lt;i&gt;System.Random&lt;/i&gt; (via our &lt;i&gt;AbstractRandomNumberGenerator&lt;/i&gt; class) and can thus be used directly in place of &lt;i&gt;System.Random&lt;/i&gt;.&lt;br /&gt;
&lt;h2&gt;Random Number Generators&lt;/h2&gt;
Namespace: MathNet.Numerics.Random&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;MersenneTwister&lt;/b&gt;: Mersenne Twister 19937 generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Xorshift&lt;/b&gt;: Multiply-with-carry XOR-shift generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mcg31m1&lt;/b&gt;: Multiplicative congruental generator using a modulus of 2^31-1 and a multiplier of 1132489760&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mcg59&lt;/b&gt;: Multiplicative congruental generator using a modulus of 2^59 and a multiplier of 13^13&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WH1982&lt;/b&gt;: Wichmann-Hill&amp;#39;s 1982 combined multiplicative congruental generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WH2006&lt;/b&gt;: Wichmann-Hill&amp;#39;s 2006 combined multiplicative congruental generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mrg32k3a&lt;/b&gt;: 32-bit combined multiple recursive generator with 2 components of order 3&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Palf&lt;/b&gt;: Parallel Additive Lagged Fibonacci generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SystemCryptoRandomNumberGenerator&lt;/b&gt;: Generator using the RNGCryptoServiceProvider of the .Net framework. &lt;i&gt;Note: Not available in portable builds&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Seeding and thread safety&lt;/h2&gt;
All generator constructors optionally accept two parameters: an integer for seeding and a boolean to enable thread-safety if needed. An exception is the crypto generator, where a custom seed would defeat its purpose.&lt;br /&gt;&lt;br /&gt;If you create two instances of the same generator and seed, they will generate exactly the same number sequence. If no seed is provided, most generator fall back to a time-based seed, which is dangerous when creating multiple generators in quick succession (since time resolution is limited, some can end up with the same seed). It is therefore essential to reuse generators instead of creating new ones every time a random number is needed, or at least to have a single random source to generate random seeds for each.&lt;br /&gt;&lt;br /&gt;For performance and design reasons, generators are not thread-safe out of the box. However, since sharing generators is recommended, thread-safe number generation can optionally be enabled with the second, boolean constructor parameter.&lt;br /&gt;
&lt;h2&gt;Non-Standard Ranges&lt;/h2&gt;
Often you don&amp;#39;t need a random number between 0 and 1 but in a different range, or e.g. a random integer of the full integer type range. Generating such random numbers correctly is non-trivial if the distribution should remain uniform (including at 0, min, max etc.). That&amp;#39;s why we also provide a set of extension methods (in addition to &lt;i&gt;Next&lt;/i&gt; and &lt;i&gt;NextDouble&lt;/i&gt;) defined directly on &lt;i&gt;System.Random&lt;/i&gt;, so the can be used not only on our custom RNGs but even with &lt;i&gt;System.Random&lt;/i&gt; instances:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;NextInt64&lt;/b&gt;: Returns a 64-bit signed integer greater than or equal to 0 and less than Int64.MaxValue. This is therefore the equivalent of the Next method but for 64-bit integers instead of 32-bit integers. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextFullRangeInt32&lt;/b&gt;: Returns a 32-bit signed integer of the full range, including 0, negative numbers, Int32.MinValue and Int32.MaxValue. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextFullRangeInt64&lt;/b&gt;: Returns a 64-bit signed integer of the full range, including 0, negative numbers, Int64.MinValue and Int64.MaxValue. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextDecimal&lt;/b&gt;: Returns a decimal floating point number greater than or equal to 0.0 and less than 1.0. Distributed uniformly.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Non-Uniform Random Numbers&lt;/h2&gt;
If you need to generate non-uniform random numbers, you can combine any of these generators with our probability distributions, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Probability%20Distributions&amp;referringTitle=Random%20Numbers"&gt;Probability Distributions&lt;/a&gt;.&lt;br /&gt;
&lt;h2&gt;Random Numbers in F#&lt;/h2&gt;
The F# extensions provide a &lt;i&gt;Random&lt;/i&gt; module in the &lt;i&gt;MathNet.Numerics.Random&lt;/i&gt; namespace that tries to make using our random number generators in F# a bit simpler and more idiomatic.&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;span class="codeInline"&gt;Random.seed ()&lt;/span&gt;: generates a GUID based seed&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.timeSeed ()&lt;/span&gt;: generates a time-based seed&lt;/li&gt;&lt;/ul&gt;

&lt;ul&gt;&lt;li&gt;&lt;span class="codeInline"&gt;Random.system()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.systemWith seed&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.crypto()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.cryptoWith threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.mersenneTwister()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.mersenneTwisterWith seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.xorshift()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.xorshiftWith seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.wh1982()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.wh1982With seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.wh2006()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.wh2006With seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.palf()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.palfWith seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.mcg59()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.mcg59With seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.mcg31m1()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.mcg31m1With seed threadSafe&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span class="codeInline"&gt;Random.mrg32k3a()&lt;/span&gt;, &lt;span class="codeInline"&gt;Random.mrg32k3aWith seed threadSafe&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 21:43:29 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Random Numbers 20121130094329P</guid></item><item><title>Updated Wiki: Random Numbers</title><link>http://mathnetnumerics.codeplex.com/wikipage?title=Random Numbers&amp;version=5</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Random Number Generation&lt;/h1&gt;
The .Net Framwork comes with two (pseudo) random number sources: &lt;b&gt;&lt;i&gt;System.Random&lt;/i&gt;&lt;/b&gt; and &lt;i&gt;System.Security.Cryptography.RNGCryptoServiceProvider&lt;/i&gt;. The former is commonly used throughout the .Net space for general purpose random number generation, the latter in selected cases where random data is needed for cryptoghraphic applications and more &amp;quot;randomness&amp;quot; is required, at the cost of being slower. If you&amp;#39;re not sure which one to choose, where randomness is not critical we suggest to simply use &lt;i&gt;System.Random&lt;/i&gt;, or &lt;i&gt;MersenneTwister&lt;/i&gt; if it turns out to be too slow.&lt;br /&gt;&lt;br /&gt;Math.NET Numerics provides a whole set of alternative &lt;b&gt;pseudo random number generators (RNG)&lt;/b&gt;. Yet, in order to stay fully compatible with other code expecting a traditional &lt;i&gt;System.Random&lt;/i&gt; instance, all our providers derive from &lt;i&gt;System.Random&lt;/i&gt; (via our &lt;i&gt;AbstractRandomNumberGenerator&lt;/i&gt; class) and can thus be used directly in place of &lt;i&gt;System.Random&lt;/i&gt;.&lt;br /&gt;
&lt;h2&gt;Random Number Generators&lt;/h2&gt;
Namespace: MathNet.Numerics.Random&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;MersenneTwister&lt;/b&gt;: Mersenne Twister 19937 generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Xorshift&lt;/b&gt;: Multiply-with-carry XOR-shift generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mcg31m1&lt;/b&gt;: Multiplicative congruental generator using a modulus of 2^31-1 and a multiplier of 1132489760&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mcg59&lt;/b&gt;: Multiplicative congruental generator using a modulus of 2^59 and a multiplier of 13^13&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WH1982&lt;/b&gt;: Wichmann-Hill&amp;#39;s 1982 combined multiplicative congruental generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;WH2006&lt;/b&gt;: Wichmann-Hill&amp;#39;s 2006 combined multiplicative congruental generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Mrg32k3a&lt;/b&gt;: 32-bit combined multiple recursive generator with 2 components of order 3&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Palf&lt;/b&gt;: Parallel Additive Lagged Fibonacci generator&lt;/li&gt;
&lt;li&gt;&lt;b&gt;SystemCryptoRandomNumberGenerator&lt;/b&gt;: Generator using the RNGCryptoServiceProvider of the .Net framework. &lt;i&gt;Note: Not available in portable builds&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Seeding and thread safety&lt;/h2&gt;
All generator constructors optionally accept two parameters: an integer for seeding and a boolean to enable thread-safety if needed. An exception is the crypto generator, where a custom seed would defeat its purpose.&lt;br /&gt;&lt;br /&gt;If you create two instances of the same generator and seed, they will generate exactly the same number sequence. If no seed is provided, most generator fall back to a time-based seed, which is dangerous when creating multiple generators in quick succession (since time resolution is limited, some can end up with the same seed). It is therefore essential to reuse generators instead of creating new ones every time a random number is needed, or at least to have a single random source to generate random seeds for each.&lt;br /&gt;&lt;br /&gt;For performance and design reasons, generators are not thread-safe out of the box. However, since sharing generators is recommended, thread-safe number generation can optionally be enabled with the second, boolean constructor parameter.&lt;br /&gt;
&lt;h2&gt;Non-Standard Ranges&lt;/h2&gt;
Often you don&amp;#39;t need a random number between 0 and 1 but in a different range, or e.g. a random integer of the full integer type range. Generating such random numbers correctly is non-trivial if the distribution should remain uniform (including at 0, min, max etc.). That&amp;#39;s why we also provide a set of extension methods (in addition to &lt;i&gt;Next&lt;/i&gt; and &lt;i&gt;NextDouble&lt;/i&gt;) defined directly on &lt;i&gt;System.Random&lt;/i&gt;, so the can be used not only on our custom RNGs but even with &lt;i&gt;System.Random&lt;/i&gt; instances:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;b&gt;NextInt64&lt;/b&gt;: Returns a 64-bit signed integer greater than or equal to 0 and less than Int64.MaxValue. This is therefore the equivalent of the Next method but for 64-bit integers instead of 32-bit integers. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextFullRangeInt32&lt;/b&gt;: Returns a 32-bit signed integer of the full range, including 0, negative numbers, Int32.MinValue and Int32.MaxValue. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextFullRangeInt64&lt;/b&gt;: Returns a 64-bit signed integer of the full range, including 0, negative numbers, Int64.MinValue and Int64.MaxValue. Distributed uniformly.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;NextDecimal&lt;/b&gt;: Returns a decimal floating point number greater than or equal to 0.0 and less than 1.0. Distributed uniformly.&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Non-Uniform Random Numbers&lt;/h2&gt;
If you need to generate non-uniform random numbers, you can combine any of these generators with our probability distributions, see &lt;a href="http://mathnetnumerics.codeplex.com/wikipage?title=Probability%20Distributions&amp;referringTitle=Random%20Numbers"&gt;Probability Distributions&lt;/a&gt;.&lt;br /&gt; &lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>cdrnet</author><pubDate>Fri, 30 Nov 2012 21:28:41 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Random Numbers 20121130092841P</guid></item></channel></rss>