Overview
Introduction
Features
Documentation
QuickStart Samples
Sample Applications
Downloads
Get it now!
Download trial version
How to Buy
Information
Contact Us
Our customers

This is a partial list of companies who are using our libraries:

ABB Robotics
Allstate
Arcam
Astra Schedule
Babson College
Canadian Council on Learning
Canyon Associates
Caxton Associates
CECity
Constellation Energy
CreditSights
DeepOcean
Duke University
Dynamotive
Elecsoft
Engelhard Corporation
Epcor
Equipoise Software
Galileo International
GAM UK
Gammex
GlaxoSmithKline
Global Matrix
The Hartford
Infinera Corporation
Intel
JDS Uniphase
LaBranche & Co.
Learning & Skills Council
Jacobs Consultancy
Litman Gregory
Lucas Systems
Malvern Instruments
Medrio
Merck & Co.
Mintera.
Monitor Software
MorningStar
NanoString Technologies
Paletta Invent
Parametric Portfolio Associates
Prosanos
RATA Associates
RiskShield
Ramboll
Standard & Poor's
Strategic Analysis Corporation
Univ. of Alicante
Univ. of South Carolina
vielife
Xerox
US Army

New Version 7.0!

Try it for free with our fully functional 60-day trial version.

Download now!

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 60-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 when using the original .NET Framework. 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.

There are two versions of these packages, one for .NET Framework version 3.5, and one for .NET Framework version 4.0 and later.

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.

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.