Math.NET Numerics
Clone or download
cdrnet Merge pull request #612 from JeWaVe/optimization-hyb
inline _factorialCache to a static readonly field
Latest commit 7e45066 Dec 15, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.paket Work around .Net Core SDK breaking changes. Move fast and break thing… Nov 18, 2018
build Build: better framework support for multiple solutions Nov 18, 2018
data changed the test data to fit the new signatures Aug 3, 2018
docs Docs: typo Sep 2, 2018
examples Examples: update to MKL provider v2.3.0 Feb 19, 2018
src Assembly size should not be an issue in this code. Dec 14, 2018
tools/docu Tools: drop old NBenchmark Oct 15, 2016
.editorconfig Cosmetics: fix trailing whitespace Jan 15, 2017
.gitattributes Docs: update pakages, users May 10, 2015
.gitignore Build: simplify test function Feb 24, 2018
.mailmap Repo: add mailmap entry for grovesNL #333 Aug 9, 2015
.travis.yml Tests: test against .Net Core 2.1 instead of 1.1 and 2.0 (both deprec… Nov 11, 2018
CONTRIBUTING.md Docs: update links to discussion board to use ssl Dec 28, 2016
CONTRIBUTORS.md Docs: update release notes and contributors Oct 19, 2018
LICENSE.md License: update upper year to 2018 Jan 6, 2018
MathNet.Numerics.ATLAS.sln Build: separate solution for ATLAS Jun 24, 2018
MathNet.Numerics.CUDA.sln Build: migrate more of native providers to new approach Jun 23, 2018
MathNet.Numerics.Data.sln Tests: clearer and simpler naming pattern for test projects Feb 4, 2018
MathNet.Numerics.Data.sln.DotSettings Release Data Extensions v4.0.0-beta01 Feb 4, 2018
MathNet.Numerics.MKL.sln Build: migrate more of native providers to new approach Jun 23, 2018
MathNet.Numerics.OpenBLAS.sln Build: migrate more of native providers to new approach Jun 23, 2018
MathNet.Numerics.sln Build: fix nuget push Nov 4, 2018
MathNet.Numerics.sln.DotSettings Cleanup: use nameof where appropriate Nov 4, 2018
NativeProviders.txt updated ACML instructions Apr 25, 2011
README.md Update ReadMe Feb 24, 2018
RELEASENOTES-CUDA.md Native: prepare build integration for CUDA native provider May 3, 2015
RELEASENOTES-Data.md Release Data Extensions v4.0.0 Feb 14, 2018
RELEASENOTES-MKL.md Release MKL Provider v2.3.0 (r12 with Intel MKL 2018.0 Update 1) Feb 14, 2018
RELEASENOTES-OpenBLAS.md Release OpenBLAS Native Provider v0.2.0 (rev 1, linear algebra v1.0) Sep 26, 2015
RELEASENOTES.md Release v4.7.0 Nov 11, 2018
Vagrantfile Vagrant: now with official Ubuntu 14.04 LTS; mono/fsharp apt-provisio… May 19, 2014
appveyor.yml Tests: test against .Net Core 2.1 instead of 1.1 and 2.0 (both deprec… Nov 11, 2018
build.cmd Build: try to switch Paket to magic mode Jan 24, 2018
build.fsx Build: better framework support for multiple solutions Nov 18, 2018
build.sh Build: try to switch Paket to magic mode Jan 24, 2018
paket.dependencies Tests: test against .Net Core 2.1 instead of 1.1 and 2.0 (both deprec… Nov 11, 2018
paket.lock Tests: test against .Net Core 2.1 instead of 1.1 and 2.0 (both deprec… Nov 11, 2018
paket.sh Paket: restrict test and benchmark dependencies to required targets, … Feb 25, 2018
restore.cmd Build: try to switch Paket to magic mode Jan 24, 2018
restore.sh Build: try to switch Paket to magic mode Jan 24, 2018
vagrant-bootstrap.sh Build: updated vagrant bootstrap to use newest xamarin mono packages Jan 3, 2015

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.