ILNumerics is an mathematical class library for .NET software developers. It simplifies the implementation of all kinds of numerical algorithms. ILNumerics was designed for helping developers to create distribution-ready applications. Interfaces of existing algebra systems were often found to be less effective, when it comes to distribution/integration into existing projects. Therefore, ILNumerics does not come with an interpreter but directly utilizes features of modern development environments and programming languages like C#.
Developer(s) | H.Kutschbach, et al. |
---|---|
Stable release | v2.6 / November 24, 2011 |
Operating system | .NET Framework/mono (Linux, Mac OS X, Windows) |
Type | Technical computing, Mathematical software |
License | proprietary |
Website | http://ilnumerics.net/ |
Contents |
ILNumerics started in 2006 and serves its community with high performance fundamental math classes since. In 2007 ILNumerics won the BASTA! Innovation Awards 2007[1] as most innovative .NET project in Germany, Switzerland and Austria. After 6 years of open source development, the project changed its licensing model in 2011 to a closed source, proprietary license, aiming business and academic developers.
N-dimensional arrays, complex numbers, linear algebra, FFT and plotting controls (2D and 3D) help developing algorithms on every platform .NET runs on. Developers formulate computational algorithms directly in their favorite .NET language - avoiding the need for interfacing 3rd party mathematical frameworks. The syntax is vastly compatible to well known and established mathematical programs like MATLAB and GNU Octave. Due to its strong type safety algorithms developed that way are more stable and robust at run time. The library is the only math library so far, which takes the characteristics of the .NET framework into account and therefore archieves better execution performance than its competitors.
Since ILNumerics comes as a .NET assembly, it targets .NET applications. Just like Java - those frameworks are often criticized for not being suitable for numerical computations. Reasons are the memory management by a garbage collector and the intermediate language execution. Nevertheless, due to efficient memory management (pooling), the performance of ILNumerics algorithms beat the speed of many competing frameworks by factors. Linear algebra routines rely on processor specific optimized versions of LAPACK and BLAS, which further increases performance and reliability of computational results. All internal functions are parallelized. The efficiency does even allow the use for 'numbercrunching' applications, which would otherwise only be suitable for Fortran - yet providing much higher implementational convenience.
Some algebraic systems come with compiler extensions for native code/C code generation. The most famous example here is Matlab's .NET Builder. Some other libraries aim the .NET platform only, namely: dnanalytics, CenterSpace Software's NMath numerical libraries, Visual Numerics' IMSL.