mathnet/mathnet-numerics

Math.NET Numerics

C#

3,769

3,260 commits

updated Mar 3, 2025

See the code

README

Math.NET Numerics

Math.NET Numerics is an opensource numerical library for .NET 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 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
MKL Native Provider Version MKL Native Provider
OpenBLAS Native Provider Version OpenBLAS Native Provider
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
  • MathNet.Numerics.FSharp - optional extensions for a better F# experience. BigRational.

Intel MKL Provider (optional):

  • MathNet.Numerics.Providers.MKL - Binding to Native Intel MKL provider.
  • MathNet.Numerics.MKL.Win - Native Intel MKL provider (Windows).
  • MathNet.Numerics.MKL.Win-x86 - Native Intel MKL provider (Windows/32-bit only).
  • MathNet.Numerics.MKL.Win-x64 - Native Intel MKL provider (Windows/64-bit only).

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 5.0 or higher (Package includes builds for 5.0 and 6.0)
  • .NET Framework 4.6.1 or higher (Package includes builds for 4.6.1 and 4.8)
  • .NET Standard 2.0 or higher (Package includes builds for 2.0)

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

Building Math.NET Numerics

Windows (.NET): AppVeyor build status

You can build Math.NET Numerics with an IDE like VisualStudio or JetBrains Rider, with MsBuild, .NET CLI tools or with FAKE (recommended).

FAKE:

./build.sh build (or build.cmd)
./build.sh test

.NET CLI:

./restore.sh (or restore.cmd)
dotnet build MathNet.Numerics.sln

MsBuild/XBuild:

./restore.sh (or restore.cmd)
msbuild MathNet.Numerics.sln

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

csharp
differentiation
fft
fsharp
integration
interpolation
linear-algebra
math
mathnet
matrix
numerics
random
regression
statistics

mathnet/mathnet-numerics

Math.NET Numerics

C#

3,769

3,260 commits

updated Mar 3, 2025

See the code

README

Math.NET Numerics

Math.NET Numerics is an opensource numerical library for .NET 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 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
MKL Native Provider Version MKL Native Provider
OpenBLAS Native Provider Version OpenBLAS Native Provider
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
  • MathNet.Numerics.FSharp - optional extensions for a better F# experience. BigRational.

Intel MKL Provider (optional):

  • MathNet.Numerics.Providers.MKL - Binding to Native Intel MKL provider.
  • MathNet.Numerics.MKL.Win - Native Intel MKL provider (Windows).
  • MathNet.Numerics.MKL.Win-x86 - Native Intel MKL provider (Windows/32-bit only).
  • MathNet.Numerics.MKL.Win-x64 - Native Intel MKL provider (Windows/64-bit only).

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 5.0 or higher (Package includes builds for 5.0 and 6.0)
  • .NET Framework 4.6.1 or higher (Package includes builds for 4.6.1 and 4.8)
  • .NET Standard 2.0 or higher (Package includes builds for 2.0)

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

Building Math.NET Numerics

Windows (.NET): AppVeyor build status

You can build Math.NET Numerics with an IDE like VisualStudio or JetBrains Rider, with MsBuild, .NET CLI tools or with FAKE (recommended).

FAKE:

./build.sh build (or build.cmd)
./build.sh test

.NET CLI:

./restore.sh (or restore.cmd)
dotnet build MathNet.Numerics.sln

MsBuild/XBuild:

./restore.sh (or restore.cmd)
msbuild MathNet.Numerics.sln

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

csharp
differentiation
fft
fsharp
integration
interpolation
linear-algebra
math
mathnet
matrix
numerics
random
regression
statistics

Project health

Overall

2.6/10

Maintained

0/10

Code review

6/10
OpenSSF Scorecard

Latest release

5.0.0 · Apr 3, 2022

Releases this year

0

Significant stargazers

(top 24 of 31)

Don Syme

1,322 followers · starred Feb 2018

Yoshifumi Kawai

4,143 followers · starred Oct 2022

Daniel Lo Nigro

1,523 followers · starred Apr 2021

Alex Arslan

507 followers · starred Jul 2020