Latest Updates
Latest Tweets
Fork me on GitHub

Math.NET Numerics for .NET and Mono

Math.NET Numerics is an opensource numerical library for .Net, Silverlight and Mono.

Math.NET 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 (FFT) and more.

Numerics is the result of merging dnAnalytics with Math.NET Iridium and is intended to replace both. It targets Microsoft .Net 4.0, Mono and Silverlight 4, and in addition to a purely managed implementation will also support native hardware optimization (MKL, ATLAS).

Check out the Quick Start, User Guide and Code Samples on the right for a quick introduction into Math.NET Numerics.

Math.NET Numerics is covered under the terms of the MIT/X11 Opensource License. You may therefore link to it and use it in both opensource and proprietary software projects.

Math.NET Numerics Features

  • mathematical and scientific constants & special functions
  • complex type including associated trigonometric and hyperpolic functions
  • real and complex, dense and sparse linear algebra (with LU, QR, eigenvalues, ... decompositions)
  • non-uniform probability distributions, multivariate distributions, sample generation
  • alternative uniform random number generators
  • descriptive statistics, including order statistics
  • various interpolation methods, including barycentric approaches and splines
  • numerical function integration (quadrature) routines
  • linear integral transforms like fourier transform (FFT) with arbitrary lengths support, and hartley
  • combinatorics, polynomials, quaternions, basic number theory, ...

  • parallelized where appropriate, to leverage multi-core and multi-processor systems

  • fully managed or (if available) using native libraries (Intel MKL, ACMS)
  • provides a native facade for F# developers

Installation Instructions

Download the MathNet.Numerics.dll assembly, add a reference to it to your project and you're done. To make this even easier we also publish binary releases to the NuGet Gallery as package MathNet.Numerics (or MathNet.Numerics.FSharp for F# integration), so you can add a managed reference directly in Visual Studio. More details on the quick start page.

Documentation & Support

All packed downloads contain an API reference in the CHM format, describing all classes and class members. We also compile an online API reference if you prefer to view it directly in the browser. If the available documentation doesn't help, have a look at the Discussion Board and post your question there.

Your Ideas, Feedback and Bug Reports

Please visit uservoice to suggest and vote for new features we should consider to implement or what we should change to better fit typical use cases.

If you've found a bug in our code base, please do let us know so we can fix it. We manage bugs in the issue tracker so the easiest way is to report it directly there. If you're unsure about the issue, you can of course ask about it on the Discussion Board. In case you have a hunch what the issue might be on our side, you may want to provide a patch so we can fix it faster (e.g. by forking it at github, fixing it in your fork and then clicking the pull request button, more details here).

Contribution Guidelines

Any contributions are welcome, please have a look at the developers and sourcecode sections.

Source Code Repository

Git at Github, Clone URL: git://github.com/mathnet/mathnet-numerics.git

We also provide mirrors including one using mercurial/Hg, the sourcecode section has more details.

News & Current Development

Team & Developers

Primary Authors: Christoph Rüegg, Marcus Cuda, Jurgen Van Gael
Contributors: Andriy Bratiychuk, Alexander Karatarakis, Patrick van der Velde, Joannès Vermorel, Matthew Kitchin, Rana Ian, Andrew Kurochka, Thaddaeus Parker, Sergey Bochkanov (ALGLIB), John Maddock (Boost), Stephen L. Moshier (Cephes Math Library)

See the Team & Contributors page for a complete listing including details on how to contact them. Ohloh also provides a contributors summary.