Ilnumerics

Ilnumerics
ILNumerics.Net
Aktuelle Version: 1.4.01
(Oktober 2008)
Betriebssystem: Unix, Linux, BSD-Derivate, Microsoft Windows, Mac OS X und Solaris 8
Kategorie: Mathematik
Lizenz: LGPL,GPL
www.ilnumerics.net

ILNumerics.Net ist eine Klassenbibliothek mit dem Ziel, numerische Berechnungen für die .NET-Plattform verfügbar zu machen. Dem Entwickler soll ermöglicht werden, komplexe Algorithmen direkt in seiner gewohnten Programmiersprache zu formulieren.

Inhaltsverzeichnis

Überblick

ILNumerics.Net ist selbst eine .NET-Assembly. Im Unterschied zu etablierten Produkten können Algorithmen als normale .NET-Klassen erstellt und zu Intermediate Language (IL) übersetzt werden.

ILNumerics.Net erweitert das .NET-Framework um komplexe Zahlen, ermöglicht das Rechnen mit Skalaren, Vektoren, Matrizenrechnung oder beliebig dimensionalen Daten. Diese Arrays bieten alle Möglichkeiten der Manipulationen und Operationen, wie sie im mathematischen Umfeld etabliert sind. Häufig benötigte Algorithmen der linearen Algebra (zum Beispiel Lineare Gleichungssysteme, Eigenwerte und -vektoren) sowie FFT-Funktionen sind ebenso implementiert wie Klassen zur graphischen Ausgabe in 2D und 3D.

Für lineare Algebra-Routinen sind prozessoroptimierte LAPACK-Bibliotheken des MIT eingebunden.

Programme des .NET-Frameworks können unter Windows und mit Hilfe des Mono-Projektes auch auf Unix, Linux, BSD-Derivate, Mac OS X und Solaris 8 ausgeführt werden.

Schnelle Programmentwicklung

Mit dem Einzug numerischer Berechnungen in Programmierumgebungen wie .NET wird dem Wissenschaftler die Möglichkeit eröffnet, das klassische Vorgehen zu verkürzen. Bislang teilt sich der Entwicklungsprozeß im wesentlichen in die Schritte Algorithmenentwicklung und -implementierung. Algorithmen werden in klassischen Mathematik-Umgebungen als Skripte entwickelt. Für industrielle Projekte müssen diese nachträglich in den endgültigen Programmcode übersetzt werden. Diesen aufwendigen Prozeß kann man oftmals zwar teilweise automatisieren, dennoch sind dem Verfahren viele Nachteile inherent. So erbt man die fehlende Typsicherheit und geringere Stabilität der Skripte und muß leichte Effizienz-Einbussen in Kauf nehmen. ILNumerics.Net ist die erste Bibliothek, die die Erstellung derartiger Algorithmen direkt in der endgültigen Programmiersprache des .NET-Frameworks ermöglicht. Eine Konvertierung ist somit nicht mehr notwendig. Das Programm wird schneller und stabiler.

Performance

ILNumerics.Net ist als erste Bibliothek dieser Art auf das Verarbeiten besonders großer Daten im .NET-Framework hin optimiert. Bei vielen Operationen wie Transposition oder Subarray-Bildung werden die Arrays nicht kopiert, sondern als Referenz verwaltet. Ein Memory-Pool sorgt für die automatische Wiederverwendung nicht mehr benötigten Speichers. Dadurch soll den Besonderheiten der Speicherverwaltung mittels Garbage-Collector Rechnung getragen werden. Diese Maßnahmen führen dazu, dass die numerischen Algorithmen mit derselben Leistung ausgeführt werden wie unter nicht verwalteten Umgebungen (siehe MATLAB). Dennoch ist es fraglich, ob die Diskussion über die generelle Möglichkeit von numerischen Berechnungen in verwalteten Umgebungen damit beendet wird. Für sogenanntes Number-Crunching bieten nach wie vor Sprachen wie Fortran eine bessere Leistung bei allerdings viel größerem Implementationsaufwand.

Besonderheiten

Surface Graph, generiert mit ILNumerics.Drawing

Die Sprache zum Erstellen und Manipulieren der n-dimensionalen Objekte lehnt sich sehr stark an die etablierten Skriptsprachen im wissenschaftlichen Umfeld an. So sind fast alle Funktionen parameterkompatibel zu MATLAB. Dennoch gibt es einige Unterschiede. Der größte besteht in der starken Typsicherheit des Codes, was das Debuggen und die Stabilität der Programme günstig beeinflussen dürfte. Zwar unterscheidet sich der Code bei Verwendung von zum Beispiel C# als Programmiersprache nur leicht von der Skriptversion, dennoch müssen Umsteiger generell mehr acht auf einige plattformspezifische Besonderheiten legen (zum Beispiel das Behandeln und Weitergeben von Referenzen bei Funktionsaufrufen). Als weitere Besonderheit sind die integrierten Steuerelemente zur Visualisierung numerischer Daten zu nennen. Die hiermit erstellten 2D- und 3D-Diagramme lassen sich direkt in eigenen interaktiven GUI-Programmen verwenden.

Geschichte

ILNumerics.Net begann als Sammlung hilfreicher mathematischer Routinen und wurde in wissenschaftlich-industriellen Projekten eingesetzt. Im Jahre 2005 wurde begonnen, die Software als eigenständige Bibliothek mit eigenem Objektdesign auszurichten. 2007 wurde sie dann auf eine Veröffentlichung vorbereitet und zunächst als proprietäre Bibliothek angeboten. Seit August 2007 wird sie als eigenständiges Projekt gepflegt und kostenlos unter der LGPL Version 3 zur Verfügung gestellt. Innerhalb eines halben Jahres wurde bereits das 100te Projekt mit ihrer Hilfe realisiert.

ILNumerics.Net ist der Gewinner des mit insgesamt 20.000 Euro dotierten BASTA! Innovation Awards 2007[1], der im Rahmen der vom Software & Support Verlag (S&S) veranstalteten Softwareentwickler-Konferenz BASTA! vergeben wurde.

Alternativen

Einige Mathematik-Programme bieten ebenfalls die Möglichkeit, die mit ihnen erstellten Algorithmen in eigenen Programmen zu verwenden. Das prominenteste proprietäre Beispiel ist wohl MATLAB der Firma The MathWorks, Inc. mit Compiler für C und Builder für .NET oder die IMSL von Visual Numerics. Andere Projekte verfolgen konsequent den Ansatz, nur für die .NET-Plattform zu entwickeln. Hier seien „Extreme Optimization“, „dnanalytics“ oder Center Space „NMath“ genannt. Während Erstere wesentlich etablierter sind, verwenden sie meist native Bibliotheken, was häufiges Verlassen des verwalteten Codes bei der Ausführung nötig macht.

Weblinks

Fußnoten

  1. BASTA! Innovation Award 2007

Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Ilnumerics.net — Aktuelle Version: 1.4.01 (Oktober 2008) Betriebssystem: Unix, Linux, BSD Derivate, Microsoft Windows, Mac OS X und Solaris 8 K …   Deutsch Wikipedia

  • ILNumerics.Net — is a class library for .NET software developers. It simplifies the implementation of all kinds of numerical algorithms. ILNumerics.Net was designed for helping developers to create distribution ready applications. Interfaces of existing algebra… …   Wikipedia

  • ILNumerics.Net — Aktuelle Version Core:1.4.03/Drawing:0.12.01 (Juli 2009) Betriebssystem Unix, Linux, BSD Derivate, Microsoft Windows, Mac OS X und Solaris 8 Kategorie Mathematik …   Deutsch Wikipedia

  • Comparison of numerical analysis software — This list is incomplete; you can help by expanding it. The following tables provide a comparison of numerical analysis software. Contents 1 Applications 1.1 General …   Wikipedia

  • List of numerical analysis software — Listed here are a number of computer programs used for performing numerical calculations: * acslX is a software application for modeling and evaluating the performance of continuous systems described by time dependent, nonlinear differential… …   Wikipedia

  • Comparison of linear algebra libraries — The following tables provide a comparison of linear algebra software libraries, either specialized or general purpose libraries with significant linear algebra coverage. Dense linear algebra General information Creator Language First public… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”