Math.NET Numerics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Christoph Ruegg 413d045ea4 Update contributors 5 years ago
.github/workflows Security: bash shell 5 years ago
.paket Migrate to .NET SDK 3.1 LTS and update dependencies 6 years ago
build Build: streamline dependency constraints 6 years ago
data changed the test data to fit the new signatures 8 years ago
docs Add monotone spline to interpolation doc; update site menu to add links. 5 years ago
examples Examples: update to MKL provider v2.3.0 8 years ago
src Linear Algebra: Matrix Resize 5 years ago
tools/docu Tools: drop old NBenchmark 9 years ago
.editorconfig Cosmetics: fix trailing whitespace 9 years ago
.gitattributes Docs: update pakages, users 11 years ago
.gitignore Beta-Binomial distribution, Generalized Hypergeometric Function, Rising and Falling Factorials. 6 years ago
.mailmap Repo: add mailmap entry for grovesNL #333 11 years ago
.travis.yml Travis: Mono lock down to 6.10.0 (6.12.0 with F# 5 seems not to work with old FSharp.Core) 5 years ago
CONTRIBUTING.md Docs: enforce https on all links 6 years ago
CONTRIBUTORS.md Update contributors 5 years ago
LICENSE.md Docs: update build documentation with more on how to build MKL on Windows 6 years ago
MathNet.Numerics.ATLAS.sln Build: separate solution for ATLAS 8 years ago
MathNet.Numerics.CUDA.sln Build: add remaining NuSpec files 7 years ago
MathNet.Numerics.Data.sln Release Data v4.1.0 5 years ago
MathNet.Numerics.Data.sln.DotSettings Build: fix data package build and tests 7 years ago
MathNet.Numerics.MKL.sln Release MKL Provider v2.4.0 (r13 with Intel MKL 2020.0 Update 1) 6 years ago
MathNet.Numerics.OpenBLAS.sln Build: add remaining NuSpec files 7 years ago
MathNet.Numerics.sln Build: streamline dependency constraints 6 years ago
MathNet.Numerics.sln.DotSettings AppContext app switches to disable native providers or their probing 6 years ago
NativeProviders.txt updated ACML instructions 15 years ago
README.md Readme: remove deprecated azure devops build status 6 years ago
RELEASENOTES-CUDA.md Native: prepare build integration for CUDA native provider 11 years ago
RELEASENOTES-Data.md Release Data v4.1.0 5 years ago
RELEASENOTES-MKL.md Release MKL Provider v2.4.0 (r13 with Intel MKL 2020.0 Update 1) 6 years ago
RELEASENOTES-OpenBLAS.md Release OpenBLAS Native Provider v0.2.0 (rev 1, linear algebra v1.0) 11 years ago
RELEASENOTES.md Release v4.13.0 5 years ago
Vagrantfile Vagrant: now with official Ubuntu 14.04 LTS; mono/fsharp apt-provisioning 12 years ago
appveyor.yml Docs: declare required Windows 10 SDK and Platform Toolset for building MKL 6 years ago
build.cmd Build: try to switch Paket to magic mode 8 years ago
build.fsx MKL Tests: fix TFMs and set provider hint path 6 years ago
build.sh Build: try to switch Paket to magic mode 8 years ago
global.json Build: roll-forward .NET Core SDK to feature (instead of latestPatch) 6 years ago
paket.dependencies Release Data v4.1.0 5 years ago
paket.lock Release Data v4.1.0 5 years ago
paket.sh Paket: restrict test and benchmark dependencies to required targets, pin FsUnit to 3.0 8 years ago
restore.cmd Build: try to switch Paket to magic mode 8 years ago
restore.sh Build: try to switch Paket to magic mode 8 years ago
vagrant-bootstrap.sh Build: updated vagrant bootstrap to use newest xamarin mono packages 11 years ago

README.md

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
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.

Alternative Provider Packages (optional):

  • MathNet.Numerics.MKL.Win - Native Intel MKL Linear Algebra provider (Windows).
  • MathNet.Numerics.MKL.Win-x86 - Native Intel MKL Linear Algebra provider (Windows/32-bit only).
  • MathNet.Numerics.MKL.Win-x64 - Native Intel MKL Linear Algebra 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 Framework 4.0 or higher and Mono (Package includes builds for 4.0 and 4.6.1)
  • .Net Standard 1.3 or higher (Package includes builds for 1.3 and 2.0)

Supported Platforms for the F# extensions:

  • .Net Framework 4.5 or higher (Package includes builds for 4.5)
  • .Net Standard 1.6 or higher (Package includes builds for 1.6 and 2.0)

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 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.