Try it now |
Latest version 8.1.20 (August 2023)
Try it for free with our fully functional
30-day trial.
Get from Nuget
|
Extreme Optimization Numerical Libraries for .NET
Nuget Packages
Nuget packages for the Extreme Optimization Numerical
Libraries for .NET are available in the
Nuget
Gallery. This page lists the available packages.
Note: You need a valid license to use these assemblies
in your applications. You can request a 30-day trial key
or order here.
Main packages
The main package is called Extreme.Numerics
and is required for all applications that use the
Extreme Optimization Numerical Libraries for .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,
Extreme.Numerics.SinglePrecision
.
To work with arbitrary numerical types, including quad-precision
and arbitrary precision numbers requires the
Extreme.Numerics.Generic
package.
Data access libraries
Classes used for loading and saving objects to and from files
are contained in the Extreme.Data
and
Extreme.Data.Json
packages.
The latter package is used for serialization in JSON
and has a dependency on Newtonsoft.Json
.
Native libraries
For better performance, optimized native linear algebra and FFT
libraries based on Intel®'s Math Kernel Library may be used.
These come in two variants depending on the interop method:
native interop and P/Invoke.
There are separate packages for single and double precision.
Each package contains libraries for both x86 and x64 platforms.
Mixed-mode packages
Mixed-mode assemblies are the preferred choice
for .NET 5.0, .NET Core 3.1 and .NET Framework 4.0+
on Windows.
These assemblies were created using C++/CLI and use
native interop to call into the native code.
This allows the native code to be called with minimal overhead.
Unfortunately, this option is not available in environments
that do not support mixed mode assemblies, such as .NET Core
or Linux.
Each target framework (.NET 5.0, .NET Core 3.1 and .NET Framework 4.0+)
has its own packages. There are two versions of each package. One contains
both 32 and 64 bit versions of the native libraries.
The other contains only 64 bit binaries.
In addition, there are versions that use the parallel and the
sequential threading library of the Intel® Math
Kernel Libraries. The parallel variant uses OpenMP to
parallellize the calculation. The sequential library
does not, and can be called safely from multiple threads.
Older packages:
P/Invoke based interop packages
While the native interop used by mixed-mode assemblies
has the best possible performance, the drawback is that
it is available only on the classic .NET Framework on
Windows and not on more recent platforms like .NET Core,
or on Linux. The P/Invoke based native libraries
address this limitation.
There are separate packages for single or double precision
operations, and for Windows or Linux.
CUDA support
A separate package provides support for GPU computing based on NVIDIA® CUDA.
This package is only available as a mixed-mode assembly for x64:
Language interface libraries
These packages provide additional features that are specific
to programming languages. There is a package for F# and one for
IronPython.
Copyright © 2003-2023, Extreme Optimization. All rights reserved.
Extreme Optimization, Complexity made simple, M#, and M Sharp are trademarks of ExoAnalytics Inc.
Microsoft, Visual C#, Visual Basic, Visual Studio, Visual Studio.NET, and the Optimized for Visual Studio logo
are registered trademarks of Microsoft Corporation.