NMath User's Guide

TOC | Previous | Next | Index

1.4 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

NMathChartMicrosoft.dll, containing convenience methods for plotting NMath types using the Microsoft Chart Controls for .NET (Section 1.11)

Microsoft.Solver.Foundation.dll, the Standard Edition of the Microsoft Solver Foundation (see below)

Native assemblies are placed in architecture-specific subdirectories.


NMathKernelx86.dll, the 32-bit kernel

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


NMathKernelx64.dll, the 64-bit kernel

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 64-bit kernel is only put in the GAC if you have the 64-bit .NET framework installed.) The native DLLs are linked resources to the corresponding kernel assemblies.

Microsoft Solver Foundation

NMath linear programming, 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.