ILNumerics

from Wikipedia, the free encyclopedia
ILNumerics
Basic data

developer ILNumerics GmbH
Publishing year 2006
Current  version 5.5 (05/17/2020)
operating system Unix , Linux , BSD derivatives, Windows , macOS and Solaris 8
programming language CSharp, Visual Basic
category mathematics
License proprietary
ilnumerics.net

ILNumerics is a program library functions for numerical calculations for .NET - Platform provides to complex mathematical algorithms directly into a general-purpose programming language to formulate.

overview

ILNumerics extends the .NET Framework with complex numbers , enables calculations with scalars , vectors , matrices or any dimensional data. These arrays offer all the possibilities of manipulations and operations that are established in the mathematical environment. Frequently required algorithms of linear algebra, for example linear equation systems , eigenvalues and vectors, as well as FFT functions are implemented as well as classes for graphic output in 2D and 3D. Processor-optimized LAPACK libraries from MIT and processor-optimized implementations ( MKL ) are integrated for linear algebra routines .

ILNumerics is itself a .NET assembly . Algorithms can be created as normal .NET classes and translated to Intermediate Language (IL). Programs of the .NET framework can be run under Windows and with the help of the Mono project also on Unix , Linux , BSD derivatives, macOS and Solaris 8.

Surface Graph, generated with ILNumerics.Drawing

performance

The design of the library implements a deterministic clearing up of used memory in connection with a fast memory pool. This is intended to eliminate the disadvantages of memory management using a garbage collector . These measures result in the numerical algorithms being executed with the same performance as algorithms which were created using Fortran or C / C ++. The trend towards the use of higher programming languages ​​for numerical calculations goes hand in hand with the development of hardware: For the optimal use of computer resources, techniques of parallelization must be applied. Higher programming languages ​​offer a simpler way of abstracting the various hardware platforms ( CPU / GPU ) and are therefore increasingly interesting for the area of number crunching . At the same time, thanks to their greater ease of use, they offer a drastically reduced amount of effort to create.

particularities

The language for creating and manipulating the n-dimensional objects is very much based on the established script languages ​​in the scientific environment. Almost all functions are parameter-compatible with MATLAB. The biggest difference compared to scripting languages ​​is the strong type safety of the code.

history

ILNumerics began at the TU Berlin as a collection of mathematical routines and was used in scientific-industrial projects. In 2005, the software began to be designed as an independent library with its own object design. In 2007 it was then prepared for publication and initially offered as a proprietary library. In the same year, the project won the BASTA! Innovation Award 2007 , which is part of the software developer conference BASTA! Organized by Software & Support Verlag (S&S). was awarded. From August 2007 to November 2011, the library was maintained as an independent project and made available free of charge under LGPL Version 3. During this time, more than 1000 projects have been implemented with their help. After six years under the open source license, ILNumerics has been marketed under a proprietary license since 2011. The target group are academic and professional developers.

Alternatives

Some math programs also offer the option of using the algorithms created with them in your own programs. The most prominent proprietary example is probably Matlab from MathWorks with Compiler for C and Builder for .NET, or the IMSL from Rogue Wave Software. Other projects, e.g. B. "Extreme Optimization", "dnAnalytics" or Center Space "NMath" consistently follow the approach of developing only for the .NET platform. While the former are much more established, they often use native libraries, requiring frequent exits from the managed code while executing. The latter, on the other hand, often cannot offer the performance of native code due to the restriction to managed code without their own memory management .

Web links

Footnotes

  1. https://www.entrepreneurship.tu-berlin.de/menue/start-ups_events/gruenderstories_start-ups/steckbriefe/steckbrief_ilnumerics ( Memento from February 20, 2016 in the Internet Archive )
  2. The winners of the BASTA! Innovation Awards 2007 ( Memento from March 17, 2012 in the Internet Archive )