Math.NET Numerics
C# F# Other
Failed to load latest commit information.
.paket Build: update Paket bootstrapper Feb 14, 2016
build Fix indirect dependencies on native dlls Mar 30, 2016
data TestData: fix embedded resource paths Jul 19, 2015
docs Docs: add a couple more users Aug 19, 2016
src Release v3.13.0 Aug 18, 2016
tools Tooling: update paket bootstrapping, use convention folders Aug 10, 2015
.editorconfig Convert F# examples to F# scripts (interactive); update nuget Apr 14, 2013
.gitattributes Docs: update pakages, users May 10, 2015
.gitignore Fix .DS_Store entry for macOS Jul 9, 2016
.mailmap Repo: add mailmap entry for grovesNL #333 Aug 9, 2015
.travis.yml Build: try to run quick tests on Mono again Mar 6, 2016 Cleanup: no longer mention CodePlex in file headers, deprecate its re… Feb 14, 2016 Release v3.13.0 Aug 18, 2016
Examples.sln Fix examples Jun 24, 2014 Docs: start migrating links from numerics homepage to docs; doc gener… Jan 11, 2015
Math.Net Master Slides.pptx Added slides on Math.Net which can be used for documentation and pres… May 5, 2010
MathNet.Numerics.All.sln Tests: embed test data as resource streams in new TestData project Jul 13, 2015
MathNet.Numerics.All.sln.DotSettings Release v3.7.0 May 9, 2015
MathNet.Numerics.Data.sln Tests: embed test data as resource streams in new TestData project Jul 13, 2015
MathNet.Numerics.Data.sln.DotSettings Docs: update pakages, users May 10, 2015
MathNet.Numerics.NativeProviders.sln Native: update linux build for MKL 11.3 Sep 27, 2015
MathNet.Numerics.Net35Only.sln Tests: embed test data as resource streams in new TestData project Jul 13, 2015
MathNet.Numerics.Net35Only.sln.DotSettings Docs: update pakages, users May 10, 2015
MathNet.Numerics.XamariniOSOnly.sln Add FSharp Xamarin.iOS project Jul 9, 2016
MathNet.Numerics.sln Statistics: refactoring: move single precision implementations to par… Dec 20, 2015
MathNet.Numerics.sln.DotSettings Tests: cleanup, simplifications Mar 22, 2015
NativeProviders.txt updated ACML instructions Apr 25, 2011
Performance.sln Perf: add performance test project Aug 7, 2014 Build: clarify need to run restore.cmd once when using VisualStudio Feb 28, 2016 Native: prepare build integration for CUDA native provider May 3, 2015 Release Data Extensions v3.2.0 Apr 11, 2016 Release MKL Native Provider v2.0.0 (rev 9, linear algebra v2.0) Sep 26, 2015 Release OpenBLAS Native Provider v0.2.0 (rev 1, linear algebra v1.0) Sep 26, 2015 Release v3.13.0 Aug 18, 2016
Vagrantfile Vagrant: now with official Ubuntu 14.04 LTS; mono/fsharp apt-provisio… May 19, 2014
appveyor.yml Build: disable target dependencies but enable tests in AppVeyor; upda… Jul 27, 2014
build.cmd Build: use paket groups, project file cleanups Dec 23, 2015
build.fsx Update contributors Jul 10, 2016 Build: use paket groups, project file cleanups Dec 23, 2015
paket.dependencies Build: try migrating to NUnit v3.2 (from v2) Mar 14, 2016
paket.lock Paket: update build and test dependencies Aug 18, 2016 Tooling: run mozroot before bootstrapper in bash scripts, avoid licen… Sep 26, 2015
restore.cmd Build: clarify need to run restore.cmd once when using VisualStudio Feb 28, 2016 Build: file permissions Mar 6, 2016 Build: updated vagrant bootstrap to use newest xamarin mono packages Jan 3, 2015

Math.NET Numerics

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

Math.NET Numerics is the numerical foundation of the Math.NET initiative, 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, statistics, interpolation, integration, regression, curve fitting, integral transforms (FFT) and more.

In addition to the core .NET package (which is written entirely in C#), Numerics specifically supports F# with idiomatic extension modules and maintains mathematical data structures like BigRational that originated in the F# PowerPack. If a performance boost is needed, the managed-code provider backing its linear algebra routines and decompositions can be exchanged with wrappers for optimized native implementations such as Intel MKL.

Math.NET Numerics is covered under the terms of the MIT/X11 license. You may therefore link to it and use it in both opensource and proprietary software projects. We accept contributions!

Current Version

Math.NET Numerics Version Math.NET Numerics
Native Providers Version Native Providers
Data Extensions Version Data Extensions

Installation Instructions

The recommended way to get Math.NET Numerics is to use NuGet. The following packages are provided and maintained in the public NuGet Gallery.

Core Package:

  • MathNet.Numerics - core package, including .Net 4, .Net 3.5 and portable/PCL builds.
  • MathNet.Numerics.FSharp - optional extensions for a better F# experience. BigRational.
  • MathNet.Numerics.Signed - strong-named version of the core package (not recommended).
  • MathNet.Numerics.FSharp.Signed - strong-named version of the F# package (not recommended).

Alternative Provider Packages (optional):

  • MathNet.Numerics.MKL.Win-x86 - Native Intel MKL Linear Algebra provider (Windows/32-bit).
  • MathNet.Numerics.MKL.Win-x64 - Native Intel MKL Linear Algebra provider (Windows/64-bit).

Data/IO Packages for reading and writing data (optional):

  • MathNet.Numerics.Data.Text - Text-based matrix formats like CSV and MatrixMarket.
  • MathNet.Numerics.Data.Matlab - MATLAB Level-5 matrix file format.

Platform Support and Dependencies

Supported Platforms:

  • .Net 4.0, .Net 3.5 and Mono: Windows, Linux and Mac.
  • PCL Portable Profiles 7, 47, 78, 259 and 328: Windows 8, Silverlight 5, Windows Phone/SL 8, Windows Phone 8.1.
  • Xamarin: Android, iOS

For full details, dependencies and platform discrepancies see Platform Compatibility.

Building Math.NET Numerics

Windows (.Net): AppVeyor build status
Linux (Mono): Travis Build Status

You can build Math.NET Numerics with an IDE like VisualStudio or Xamarin, with MsBuild or with FAKE.


restore.cmd (or
msbuild MathNet.Numerics.sln


build.cmd Build    # build from the Windows console with .Net
./ Build   # build from Bash, with Mono on Linux/Mac or .Net on Windows
./ Test    # build and run unit tests

See Build & Tools for full details on how to build, generate documentation or even create a full release.