Verbesserungen an der Math.NET API

Published 15 September 03 01:01 | Christoph Rüegg
Die Math.NET API wurde bisher v.a. im Hinblick auf Flexibilität, Abtraktheit und dynamischer Term Generierung (insbesondere via Parser) designt. Daneben sollte sie sich aber schon seit Beginn als klassische API bewähren; dieser Aspekt wurde zugunsten der Abstraktheit bisher allerdings stark vernachlässigt.

Ich habe mir daher einige Anpassungen vorgenommen. Wichtigste Änderung dürfte sein, dass die Operator Basisklassen neu Methoden für Standardoperation wie die Addition un die Multiplikation zur Verfügung stellen werden. Da alle entsprechenden Klassen von ihren Operator Basisklassen erben sind diese Methoden sofort überall verfügbar. Ausserdem harmonisieren diese Methoden bestens mit den neuen algebraischen Schnittstellen wie IAlgebraicRing. Die Vereinfachung ist jedoch erheblich:

Seien z.B. z1 und z2 zwei komplexe Zahlen. Wir wollen in z3 das negative Produkt dieser Zahlen.

bisher:
IComplexExpression z3 = new ComplexNegative(context,new ComplexMultiplication(context,z1,z2));

neu:
IComplexExpression z3 = z1.Multiply(z2).Negate();

Im Hintergrund werden die neuen Methoden natürlich dasselbe machen wie bisher. Auch werden nur eine kleine Auswahl an Operationen als Methoden zur Verfügung gestellt werden, speziellere Operationen wie Sinus oder die Exponentialfunktion werden weiterhin wie bisher angewandt werden. Das ganze wird voraussichtlich in die nächste Release (0.18) verfügbar sein.
Filed under: ,

Comments

No Comments