ILNumerics
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.
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
- Website of the ILNumerics project
- Comparison of numerical analysis software - Wikipedia article comparing common software on the topic
- Blog article with speed comparison of common numerical frameworks
Footnotes
- ↑ 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 )
- ↑ The winners of the BASTA! Innovation Awards 2007 ( Memento from March 17, 2012 in the Internet Archive )