ILNumerics started in 2006 as an open source project, originating from the Technical University of Berlin. 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. The project quickly gained popularity. The.NET framework was selected as a managed foundation, since earlier attempts on the Java platform had been abandoned due to technical limitations. Similarly, the.NET framework has not been designed with the focus on requirements of technical application development. ILNumerics added interfaces to popular codes, complex numbers and genericmult-dimensional array classes. In 2010 graphical capabilities have been added. Efforts to increase the performance of the technology were introduced in 2011. At the same time, a company was founded to continue the development. The technological goal is to establish the.NET framework as a feasible alternative to unmanaged languages for numeric computing.
Syntax
ILNumerics implements base functionality frequently needed for application development in technical areas: N-dimensional arrays, complex numbers, linear algebra, FFT and plottingcontrols. The array classes are fully compatible with the array features of Matlab and numpy, including internal storage order, subarray creation, expansion, and advanced indexing. Higher level functionality is provided by toolboxes for interpolation, optimization, statistics, HDF5 and machine learning. The ILNumerics DSL is embedded into.NET. Computational algorithms are formulated using any CLI language. However, only C# and Visual Basic are officially supported. Due to the strong type system of the.NET framework algorithms created with ILNumerics are strongly typed. This deviates from the syntax of alternatives, which are often weakly typed and therefore easier to adopt.
Graphics
A scene graph is used in ILNumerics to realize graphical output. Interactive 2D and 3D plots are used in Windows Forms applications. Hardware accelerated drawing is available via OpenGL. A software renderer is provided for legacy hardware, based on GDI+ and SVG.
IDE integration
ILNumerics is distributed as an extension to Visual Studio. It adds a tool window to the IDE for the graphical inspection of mathematical objects while stepping through user code.