@ -90,7 +90,7 @@ We prefer a couple small pull requests over a single large one that targets mult
<p><strong>Code Reformatting and Refactoring:</strong><br/>
Please avoid starting with a major refactoring or any code reformatting without talking to us first.</p>
<p><strong>Breaking Compatibility:</strong><br/>
We try to follow <ahref="http://semver.org/">semantic versioning</a>, meaning that we cannot break compatibility until the next major version. Since Numerics intentionally permits straight access to raw algorithms, a lot of member declarations are public and thus cannot be modified. Instead of breaking compatibility, it is often possible to create a new better version side by side though and mark the original implementation as obsolete and scheduled for removal on the next major version.</p>
We try to follow <ahref="https://semver.org/">semantic versioning</a>, meaning that we cannot break compatibility until the next major version. Since Numerics intentionally permits straight access to raw algorithms, a lot of member declarations are public and thus cannot be modified. Instead of breaking compatibility, it is often possible to create a new better version side by side though and mark the original implementation as obsolete and scheduled for removal on the next major version.</p>
<p><strong>Merges:</strong><br/>
Please avoid merging mainline back into your pull request branch. If you need to leverage some changes recently added to mainline, consider to rebase instead. In other words, please make sure your commits sit directly on top of a recent mainline master.</p>
@ -63,7 +63,7 @@ inline plots and other rich media. <a href="https://github.com/BayardRock/IfShar
for iPython with IntelliSense and embedded FSharp.Charting. Thanks to its NuGet support it can load other packages like Math.NET Numerics on demand.</p>
@ -139,7 +139,7 @@ Console.WriteLine(<span class="s">"Approximate value using a relative error of 1
<p>A fixed-order Gauss-Legendre integration routine is provided for fast integration of smooth functions with known polynomial order. The N-point Gauss-Legendre rule is exact for polynomials of order <spanclass="math">\(2N-1\)</span> or less. For example, these rules are useful when integrating basis functions to form mass matrices for the Galerkin method <ahref="https://www.gnu.org/software/gsl/">[GSL]</a>.</p>
<p>The basic idea of Gauss-Legendre integration is to approximate the integral of a function <spanclass="math">\(f(x)\)</span> using <spanclass="math">\(N\)</span> Weights <spanclass="math">\(w_i\)</span> and abscissas (or nodes) <spanclass="math">\(x_i\)</span>.</p>
<p>This algorithm calculates the abscissas and weights for a given order and integration interval. For efficiency, pre-computed abscissas and weights for the orders <spanclass="math">\(N = 2 - 20, \, 32, \, 64, \, 96, 100, \, 128, \, 256, \, 512, \, 1024\)</span> are used. Otherwise, they are calculated on the fly using Newton's method. For more information on the algorithm see <ahref="http://www.holoborodko.com/pavel/numerical-methods/numerical-integration/">[Holoborodko, Pavel] </a>.</p>
<p>This algorithm calculates the abscissas and weights for a given order and integration interval. For efficiency, pre-computed abscissas and weights for the orders <spanclass="math">\(N = 2 - 20, \, 32, \, 64, \, 96, 100, \, 128, \, 256, \, 512, \, 1024\)</span> are used. Otherwise, they are calculated on the fly using Newton's method. For more information on the algorithm see <ahref="https://www.holoborodko.com/pavel/numerical-methods/numerical-integration/">[Holoborodko, Pavel] </a>.</p>
<h3><aname="Abscissas-and-Weights"class="anchor"href="#Abscissas-and-Weights">Abscissas and Weights</a></h3>
<p>We'll first use the abscissas and weights to approximate an integral using a 5-point Gauss-Legendre rule</p>
@ -131,11 +131,11 @@ see <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586.a
libraries into the same folder as the executable is not enough. The safe way is to edit <code>/etc/ld.so.conf</code>
and use <code>ldconfig</code> to tell where to look for the libraries. Alternatively you could add the path
to <code>LD_LIBRARY_PATH</code> or even just copy them to <code>/usr/lib</code>.</p>
<p>For details see Mono's <ahref="http://www.mono-project.com/docs/advanced/pinvoke/#linux-shared-library-search-path">Interop with Native Libraries</a>.</p>
<p>For details see Mono's <ahref="https://www.mono-project.com/docs/advanced/pinvoke/#linux-shared-library-search-path">Interop with Native Libraries</a>.</p>
<h2><aname="Default-Behavior-on-Mac-OS-X"class="anchor"href="#Default-Behavior-on-Mac-OS-X">Default Behavior on Mac OS X</a></h2>
<p>You can configure the search path on one of the environment variables like <code>DYLD_LIBRARY_PATH</code>
or just copy them e.g. to <code>/usr/lib</code>.</p>
<p>For details see Mono's <ahref="http://www.mono-project.com/docs/advanced/pinvoke/#mac-os-x-framework-and-dylib-search-path">Interop with Native Libraries</a>.</p>
<p>For details see Mono's <ahref="https://www.mono-project.com/docs/advanced/pinvoke/#mac-os-x-framework-and-dylib-search-path">Interop with Native Libraries</a>.</p>
<li>See also: <ahref="https://sdrv.ms/17wPFlW">Roadmap</a> and <ahref="http://christoph.ruegg.name/blog/towards-mathnet-numerics-v3.html">Towards Math.NET Numerics Version 3</a>.</li>
<li>See also: <ahref="https://sdrv.ms/17wPFlW">Roadmap</a> and <ahref="https://christoph.ruegg.name/blog/towards-mathnet-numerics-v3.html">Towards Math.NET Numerics Version 3</a>.</li>
<li><strong>Major release with breaking changes</strong></li>
<li>All obsolete code has been removed</li>
<li>Reworked redundancies, inconsistencies and unfortunate past design choices.</li>
<li>See also: <ahref="http://christoph.ruegg.name/blog/new-in-mathnet-numerics-2-6.html">What's New in Math.NET Numerics 2.6</a></li>
<li>See also: <ahref="https://christoph.ruegg.name/blog/new-in-mathnet-numerics-2-6.html">What's New in Math.NET Numerics 2.6</a></li>
<li>Linear Curve Fitting: Linear least-squares fitting (regression) to lines, polynomials and linear combinations of arbitrary functions. Multi-dimensional fitting. Also works well in F# with the F# extensions.</li>
<li>See also: <ahref="http://christoph.ruegg.name/blog/new-in-mathnet-numerics-2-5.html">What's New in Math.NET Numerics 2.5</a></li>
<li>See also: <ahref="https://christoph.ruegg.name/blog/new-in-mathnet-numerics-2-5.html">What's New in Math.NET Numerics 2.5</a></li>
<li>Statistics: Empty statistics now return NaN instead of either 0 or throwing an exception. <em>This may break code in case you relied upon the previous unusual and inconsistent behavior.</em></li>
<li>Linear Algebra: More reasonable ToString behavior for matrices and vectors. <em>This may break code if you relied upon ToString to export your full data to text form intended to be parsed again later. Note that the classes in the MathNet.Numerics.IO library are more appropriate for storing and loading data.</em></li>
Feel free to <ahref="https://github.com/mathnet/mathnet-numerics/blob/master/docs/content/Users.md">add, edit or remove your own work</a> by submitting a pull request.</em></p>
<li><ahref="http://www.ismll.uni-hildesheim.de/mymedialite/">MyMediaLite Recommender System Library</a></li>
<li><ahref="https://www.ismll.uni-hildesheim.de/mymedialite/">MyMediaLite Recommender System Library</a></li>
<li><ahref="https://launchpad.net/fermisim">FermiSim, studying potential solutions to the Fermi paradox via computational simulation of models for space colonisation</a></li>
<li><ahref="https://code.google.com/p/lightfieldretrieval/">Three-Dimensional Model Shape Description and Retrieval Based on LightField Descriptors</a></li>
<h2><aname="Blogs-Tutorials-amp-Examples"class="anchor"href="#Blogs-Tutorials-amp-Examples">Blogs, Tutorials & Examples</a></h2>
<ul>
<li><ahref="http://msdn.microsoft.com/en-us/library/hh304363.aspx">Yin Zhu: Tutorial: Using Math.NET Numerics in F#</a></li>
<li><ahref="http://blogs.msdn.com/b/dsyme/archive/2012/07/06/getting-started-with-math-net-and-f-programming.aspx">Don Syme: Getting Started with Math.NET and F# Programming</a></li>
<li><ahref="http://www.imagingshop.com/articles/least-squares">Libor Tinka: Linear and Nonlinear Least-Squares with Math.NET</a></li>
<li><ahref="http://code.msdn.microsoft.com/Co-occurrence-Approach-to-57027db7">Carl Nolan: Co-occurrence Approach to an Item Based Recommender</a></li>
<li><ahref="http://functionalflow.co.uk/blog/2011/10/27/f-as-a-octavematlab-replacement-for-machine-learning/">Gustavo Guerra: F# as a Octave/Matlab Replacement for Machine Learning</a></li>
<li><ahref="http://clear-lines.com/blog/post/Simplify-data-with-SVD-and-MathNET-in-FSharp.aspx">Mathias Brandewinder: Simplify data with SVD and Math.NET in F#</a></li>
<li><ahref="http://clear-lines.com/blog/post/Recommendation-Engine-with-SVD-and-MathNET-in-FSharp.aspx">Mathias Brandewinder: Recommendation Engine using Math.NET, SVD and F#</a></li>
<li><ahref="http://codingwiththomas.blogspot.ch/2014/05/stochastic-logistic-regression-in-f.html">Thomas Jungblut: Stochastic Logistic Regression in F#</a></li>
<li><ahref="http://calvinbottoms.blogspot.ch/2012/01/set-based-operations-theyre-not-just.html">Calvin Bottoms: Set-Based Operations: They’re Not Just For Databases</a></li>
<li><ahref="http://programmingcradle.blogspot.ch/2012/09/f-k-s-test-on-final-prices-of-gbm-paths.html">Chao-Jen Chen: F#: K-S test on final prices of GBM paths </a></li>
<li><ahref="http://dkowalski.com/blog/archive/2014/01/11/f-deedle-and-computational-investing.aspx">Dawid Kowalski: F#, Deedle and Computational Investing</a></li>
<li><ahref="http://cyber-defense.sans.org/blog/2015/06/27/powershell-for-math-net-numerics">Jason Fossen: PowerShell for Math.NET Numerics</a></li>
<li><ahref="https://msdn.microsoft.com/en-us/library/hh304363.aspx">Yin Zhu: Tutorial: Using Math.NET Numerics in F#</a></li>
<li><ahref="https://blogs.msdn.com/b/dsyme/archive/2012/07/06/getting-started-with-math-net-and-f-programming.aspx">Don Syme: Getting Started with Math.NET and F# Programming</a></li>
<li><ahref="https://www.imagingshop.com/articles/least-squares">Libor Tinka: Linear and Nonlinear Least-Squares with Math.NET</a></li>
<li><ahref="https://code.msdn.microsoft.com/Co-occurrence-Approach-to-57027db7">Carl Nolan: Co-occurrence Approach to an Item Based Recommender</a></li>
<li><ahref="https://functionalflow.co.uk/blog/2011/10/27/f-as-a-octavematlab-replacement-for-machine-learning/">Gustavo Guerra: F# as a Octave/Matlab Replacement for Machine Learning</a></li>
<li><ahref="https://clear-lines.com/blog/post/Simplify-data-with-SVD-and-MathNET-in-FSharp.aspx">Mathias Brandewinder: Simplify data with SVD and Math.NET in F#</a></li>
<li><ahref="https://clear-lines.com/blog/post/Recommendation-Engine-with-SVD-and-MathNET-in-FSharp.aspx">Mathias Brandewinder: Recommendation Engine using Math.NET, SVD and F#</a></li>
<li><ahref="https://codingwiththomas.blogspot.ch/2014/05/stochastic-logistic-regression-in-f.html">Thomas Jungblut: Stochastic Logistic Regression in F#</a></li>
<li><ahref="https://calvinbottoms.blogspot.ch/2012/01/set-based-operations-theyre-not-just.html">Calvin Bottoms: Set-Based Operations: They’re Not Just For Databases</a></li>
<li><ahref="https://programmingcradle.blogspot.ch/2012/09/f-k-s-test-on-final-prices-of-gbm-paths.html">Chao-Jen Chen: F#: K-S test on final prices of GBM paths </a></li>
<li><ahref="https://dkowalski.com/blog/archive/2014/01/11/f-deedle-and-computational-investing.aspx">Dawid Kowalski: F#, Deedle and Computational Investing</a></li>
<li><ahref="https://cyber-defense.sans.org/blog/2015/06/27/powershell-for-math-net-numerics">Jason Fossen: PowerShell for Math.NET Numerics</a></li>
<li><ahref="https://cyber-defense.sans.org/blog/2015/07/24/truerng-usb-random-numbers-powershell-mathnet-numerics">Jason Fossen: TrueRNG Random Numbers with PowerShell and Math.NET Numerics</a></li>
<li><ahref="http://jaskula.fr/blog/2015/12-02-data-science-tools-in-f-through-univariante-linear-regression/">Thomasz Jaskula: Data Science tools in F# through univariante linear regression</a></li>
<li><ahref="http://christoph.ruegg.name/blog/linear-regression-mathnet-numerics.html">Christoph Rüegg: Linear Regression With Math.NET Numerics</a></li>
<li><ahref="https://jaskula.fr/blog/2015/12-02-data-science-tools-in-f-through-univariante-linear-regression/">Thomasz Jaskula: Data Science tools in F# through univariante linear regression</a></li>
<li><ahref="https://christoph.ruegg.name/blog/linear-regression-mathnet-numerics.html">Christoph Rüegg: Linear Regression With Math.NET Numerics</a></li>
@ -136,7 +136,16 @@ Feel free to <a href="https://github.com/mathnet/mathnet-numerics/blob/master/do
</ul>
<h2><aname="Papers-and-Thesis"class="anchor"href="#Papers-and-Thesis">Papers and Thesis</a></h2>
<ul>
<li>Dalchau, Neil; Grant, Paul K.; Vaidyanathan, Prashant; Spaccasassi, Carlo; Gravill, Colin; Phillips, Andrew (2019). <em>Scalable dynamic characterization of synthetic gene circuits.</em> Microsoft Research. DOI 10.1101/635672.</li>
<li>Gao, Peichao; Cushman, Samuel A.; Liu, Gang; Ye, Sijing; Shen, Shi; Cheng, Changxiu (2019). <em>FracL: A Tool for Characterizing the Fractality of Landscape Gradients from a New Perspective.</em> MDPI Iternationa Journal of Geo-Information. DOI 10.3390/ijgi8100466.</li>
<li>Vlasenko, Alexander; Vlasenko, Nataliia; Vynokurova, Olena; Bodyanskiy, Yevgeniy; Peleshko, Dmytro (2019). <em>A Novel Ensemble Neuro-Fuzzy Model for Financial Time Series Forecasting.</em> MDPI data. DOI 10.3390/data4030126.</li>
<li>Falke, Martin; Höglund, Lucas (2019). <em>Implementing gaze tracking with a simple web camera.</em> KTH School of Electrical Engineering and Computer Science, Stockholm.</li>
<li>Rottschäfer, Marcus Philip (2019). <em>Simultaneous Visual Analysis of Multidimensional Data and Attributes.</em> Institute for Visualization and Interactive Systems, University of Stuttgart.</li>
<li>Azimov, R., Grigorev, S. (2019). <em>Path Querying with Conjunctive Grammars by Matrix Multiplication.</em> Program Comput Soft 45, 357–364. DOI 10.1134/S0361768819070041</li>
<li>Honfi, D., Micskei, Z. (2019). <em>Classifying generated white-box tests: an exploratory study.</em> Software Qual J 27, 1339–1380. DOI 10.1007/s11219-019-09446-5.</li>
<li>Sowa, Marcin (2018). <em>A Harmonic Balance Methodology for Circuits with Fractional and Nonlinear Elements.</em> Circuits Syst Signal Process 37:4695–4727. DOI 10.1007/s00034-018-0794-8.</li>
<li>Schaffranek, Richard (2015). <em>Parallel planning - An experimental study in spectral graph matching.</em> Vienna University of Technology. Proceedings of the 10th International Space Syntax Symposium.</li>
<li>De Feber, Max (2017). <em>Real-time numerical modeling of subsea cable dynamics - Visualized in Augmented Reality.</em> Offshore & Dredging Engineering, Delft University of Technology.</li>
<li>Nkurikiyeyezu, K.; Ahishakiye, F.; Nsengimana, C.; Ntagwirumugara, E. (2015). <em>Toolkits for Real Time Digital Audio Signal Processing Teaching Laboratory.</em> University of Rwanda. Journal of Signal and Information Processing. DOI 10.4236/jsip.2015.62009</li>
<li>Czarnowska, Lucyna; Litwin, Wojciech; Stanek, Wojciech (2015). <em>Selection of Numerical Methods and their Application to the Thermo-Ecological Life Cycle Cost of Heat Exchanger Components</em>. Silesian University of Technology.</li>
<li>Schmollinger, Stefan; Mülhaus, Timo; et al (2014). <em>Nitrogen-Sparing Mechanisms in Chlamydomonas Affect the Transcriptome, the Proteome, and Photosynthetic Metabolism.</em> The Plant Cell. DOI 10.1105/tpc.113.122523</li>