Dezember 2003 - Posts

Abspaltung der nummerischen Aspekte von Math.NET
07 Dezember 03 10:11 | Christoph Rüegg | with no comments

Ich habe mich entschieden, die nummerischen Aspekte von Math.NET in eine seperate kleine Bibliothek auszulagern. Neben rein organisatorischen Gründen und dem stetigen Anwachsen der Bibliothek in letzter Zeit verhindert die Abspaltung ein vermischen der nummerischen und symbolischen Aspekte und entsprechende potentielle Redundanzen. Dazu kommt die Tatsache, dass in der Praxis häufig rein nummerische Probleme gelöst werden müssen; der symbolische Overhead ist dabei nur störend.

Die neue Unterbibliothek, Math.NET Library Numerical, ist eine reine API (unabhängig vom Math.NET Operatorensystem) und somit wesentlich produktiver und "straight forward" in der programmatischen Anwendung. Sie repräsentiert das nummerische Backend des ScalarExpression Typs in Math.NET und erlaubt ein beliebiges Umschalten zwischen verschiedenen Fliesskomma Zahlensystemen wie Double Precision und Arbitrary Precision, die durch Vererbung zum generalisierten Numerical Typ zusammengeführt werden. Der auf Numerical aufbauende Typ ComplexNumerical, der eine komplexe Zahl in kartesischer oder polarer Form darstellt, wird wahrscheinlich die Grundlage der ScalarExpression bilden.

Für die Unterbibliothek wäre es interessant, wenn sie von bewiesenen und besonders effizienten Algorithmen (besonders bzgl. der Linearen Algebra) in bestehenden OpenSource Projekten wie beispielsweise .num oder Mapack (die wiederum auf Systemen wie LAPACK und BLAS aufbauen) profitieren könnte. Allerdings musste ich bereits einige lizenztechnische Hürden ausmachen, insbesondere da sich eines der Projekte aufgrund schlechter Erfahrungen leider (aber verständlicherweise) möglicherweise aus der Opensource Gemeinde zurückziehen möchte ...
Filed under: