|This article needs additional citations for verification. (May 2012)|
ILNumerics is a mathematical class library for Common Language Infrastructure (CLI) developers. It simplifies the implementation of an array of numerical algorithms. ILNumerics was designed to help developers 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||GNU GPL and GNU LGPL or proprietary|
ILNumerics started in 2006 and serves its community with high performance fundamental math classes since. In 2007 ILNumerics won the BASTA! Innovation Awards 2007 as most innovative .NET project in Germany, Switzerland and Austria. After 6 years of open source development, the project added a closed source, proprietary license in 2011, aiming business and academic developers at the same time.
N-dimensional arrays, complex numbers, linear algebra, FFT and plotting controls (2D and 3D) help developing algorithms on every platform the CLI runs on. Developers formulate computational algorithms directly in their favorite CLI 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 CLI into account and therefore achievers better execution performance than its competitors.
Since ILNumerics comes as a CLI assembly, it targets Common Language Infrastructure (CLI) 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.
- ILNumerics.Net website (proprietary software)