Nuget packages

NuGet packages for Numerics.NET are available in the NuGet Gallery. This document 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.

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.

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.

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.

The Windows x86 packages are legacy packages; Intel has retired 32-bit MKL.

Apple Accelerate

One package includes both macOS Intel x64 and Apple Silicon ARM64 assets and supplies single- and double-precision acceleration. It 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.

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 the preferred double-precision MKL native provider for Windows x64. 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 the preferred double-precision MKL native provider for Linux x64. The separate single-precision native MKL package remains optional.

Numerics.NET.osx

The Numerics.NET.osx package combines the managed Numerics.NET bundle with the preferred Accelerate native provider for macOS Intel x64 and Apple Silicon ARM64. One Accelerate package supplies both single- and double-precision native acceleration. OpenBLAS remains a separately installable alternative.

Language interface libraries

The F# package provides additional features specific to F#.

See Also

Other Resources