NMath User's Guide

TOC | Previous | Next | Index

1.3 NMath Assemblies (.NET, C#, CSharp, VB, Visual Basic, F#)

The NMath installer places the following .NET assemblies in directory <installdir>/Assemblies:

NMath.dll, the main NMath assembly

System.Configuration.ConfigurationManager.dll (>= 4.6.0)

Native assemblies are placed in architecture-specific subdirectories.


nmath_native_x86.dll, 32-bit native code, including the Intel® Math Kernel Library (MKL)

nmath_sf_x86.dll, 32-bit native code for special functions

libiomp5md.dll, dynamically-linked 32-bit Intel OMP threading library


nmath_native_x64.dll, 64-bit native code, including Intel® Math Kernel Library (MKL)

nmath_sf_x64.dll, 64-bit native code for special functions

libiomp5md.dll, dynamically-linked 64-bit Intel OMP threading library

The installer also places the .NET assemblies in your global assembly cache (GAC). The native DLLs are linked resources to the corresponding kernel assemblies.

Microsoft Solver Foundation

NMath nonlinear programming, and quadratic programming classes are built on the Microsoft Solver Foundation (MSF). The Standard Edition of MSF is included with NMath (Microsoft.Solver.Foundation.dll), but is limited to 100,000 non-zero coefficients. Note that this is not a limit on the number of variables, but rather on the total number of all non-zero coefficients used to specify the constraints. Given n variables and m constraints, there are between 0 and m*n non-zero coefficients.

Google OR Tools

NMath linear programming and mixed integer programming classes are built on the Google OR Tools libraries. This library is included with NMath (Google.OrTools.dll), and has no artificially imposed limits on the number of constraints or variables.