NuGet Packages
NuGet packages for Numerics.NET are available in the NuGet Gallery. This page describes the Numerics.NET 10.8 package family.
Numerics.NET is made up of several packages that provide different features. For convenience, several bundles are available that combine the most commonly used packages.
You need a valid license to use these packages in your applications. You can request a 30-day trial key or order here.
Numerics Packages
The main package is called Numerics.NET.Core and is required for all applications that use Numerics.NET.
The main library only handles calculations with double-precision real and complex numbers. The classes that work with single-precision numbers are contained in a separate package, Numerics.NET.SinglePrecision.
To work with arbitrary numerical types, including quad-precision and arbitrary precision numbers requires the Numerics.NET.Generic package.
The tensor library is contained in the Numerics.NET.Tensors package.
- Numerics.NET.Core - main package.
- Numerics.NET.SinglePrecision - single-precision linear algebra and FFTs.
- Numerics.NET.Generic - generic linear algebra.
- Numerics.NET.Tensors - tensor library.
Data Access Libraries
Classes used for loading and saving objects to and from files
are contained in the Numerics.NET.Data and
Numerics.NET.Data.Json packages.
The latter package is used for serialization in JSON
and has a dependency on Newtonsoft.Json.
- Numerics.NET.Data - text files (including CSV), R, Stata, and MATLAB files.
- Numerics.NET.Data.Json - JSON serialization.
Native libraries
Native providers accelerate supported operations while managed implementations remain available for other operations. Automatic provider selection prefers MKL on Windows/Linux and Accelerate on macOS, with OpenBLAS as the fallback on supported platforms.
Intel oneAPI Math Kernel Library (MKL)
MKL packages for Windows x64 and Linux x64 are separate for double and single precision:
- Numerics.NET.Native.Mkl.win-x64 - double precision on Windows x64.
- Numerics.NET.Native.Mkl.linux-x64 - double precision on Linux x64.
- Numerics.NET.Native.Mkl.SinglePrecision.win-x64 - single precision on Windows x64.
- Numerics.NET.Native.Mkl.SinglePrecision.linux-x64 - single precision on Linux x64.
The Windows x86 packages are legacy packages; Intel has retired 32-bit MKL:
- Numerics.NET.Native.Mkl.win-x86 - legacy double-precision provider.
- Numerics.NET.Native.Mkl.SinglePrecision.win-x86 - legacy single-precision provider.
Apple Accelerate
- Numerics.NET.Native.Accelerate - the preferred native provider for macOS on Intel x64 and Apple Silicon ARM64. One package includes both architectures and supplies single- and double-precision acceleration for dense BLAS, LAPACK, selected vector operations, and FFTs.
This package targets macOS only.
OpenBLAS
OpenBLAS supplies single- and double-precision dense BLAS and LAPACK acceleration. It is available separately as a portable alternative to the preferred platform provider.
- Numerics.NET.Native.OpenBlas - bundle of the supported OpenBLAS platform packages.
- Numerics.NET.Native.OpenBlas.win-x64 - Windows x64.
- Numerics.NET.Native.OpenBlas.linux-x64 - Linux x64.
- Numerics.NET.Native.OpenBlas.osx-x64 - macOS on Intel x64.
- Numerics.NET.Native.OpenBlas.osx-arm64 - macOS on Apple Silicon ARM64.
Bundle packages
To simplify the installation of Numerics.NET in your applications, we’ve created bundles of the most commonly used packages. Platform bundles install the preferred native provider, not the OpenBLAS fallback.
Numerics.NET
The Numerics.NET package
bundles these managed libraries:
Numerics.NET.Core, Numerics.NET.SinglePrecision,
Numerics.NET.Generic, Numerics.NET.Tensors, and Numerics.NET.Data.
Numerics.NET.win-x64
The Numerics.NET.win-x64 package
contains all the packages in Numerics.NET
plus Numerics.NET.Native.Mkl.win-x64, the preferred double-precision MKL provider. The separate single-precision native MKL package remains optional.
Numerics.NET.win-x86
The Numerics.NET.win-x86 package
contains all the packages in Numerics.NET
plus the legacy double-precision MKL provider for Windows x86. The separate single-precision native MKL package remains optional.
Numerics.NET.linux-x64
The Numerics.NET.linux-x64 package
contains all the packages in Numerics.NET
plus Numerics.NET.Native.Mkl.linux-x64, the preferred double-precision MKL provider. The separate single-precision native MKL package remains optional.
Numerics.NET.osx
The Numerics.NET.osx package
combines Numerics.NET with Numerics.NET.Native.Accelerate.
One bundle supports macOS on both Intel x64 and Apple Silicon ARM64,
with native acceleration for both single and double precision.
OpenBLAS remains a separately installable alternative.
Language interface libraries
- Numerics.NET.FSharp - additional support for F#.