Die Veröffentlichung des Systems für mathematische Berechnungen GNU Octave 11.1.0 (die erste Ausgabe der Serie 11.x, der Branch 11.0 wurde für die Entwicklung verwendet) fand statt und bietet eine interpretierte Sprache, die weitgehend mit Matlab kompatibel ist. GNU Octave kann verwendet werden, um lineare Aufgaben, nichtlineare und Differentialgleichungen zu lösen, Berechnungen mit komplexen Zahlen und Matrizen durchzuführen, Daten zu visualisieren und mathematische Experimente durchzuführen. Der Code ist in C++ geschrieben (Schnittstelle in Qt) und wird unter der GPLv3-Lizenz vertrieben.
Zu den Änderungen in der neuen Version gehören:
- Im Paketmanager pkg wurde ein neuer Befehl zur Suche hinzugefügt: „pkg search foo bar baz“. Im Befehl „pkg install“ wurde die automatische Erkennung implementiert, ob das übergebene Argument eine lokale Datei, eine URL oder ein Paketname ist. Lokales Caching von Paketmetadaten und die Überprüfung heruntergeladener Pakete mittels SHA256-Hash wurden eingebaut.
- Die Dateioberfläche (File Browse) wurde in zwei Registerkarten unterteilt — eine zur Navigation durch den Inhalt des Dateisystems und eine zweite zur Ansicht und Verwaltung aller im Editor geöffneten Dateien.
- Im Dialog zum Suchen von Dateien wurde eine Liste früherer Suchanfragen hinzugefügt und die Möglichkeit zur Suche von Dateien nach mehreren Masken implementiert.
- Im grafischen Benutzerinterface wurden Vektor-Symbole im SVG-Format verwendet und die standardmäßige Kommandozeilenschnittstelle von Octave bereitgestellt.
- Die Einstellungen wurden um Optionen zum Deaktivieren des Screensavers und zur Verwendung des aktuellen Verzeichnisses als Standardverzeichnis im Dialog zum Öffnen von Dateien erweitert.
- Die Druckoperation auf PDF-Dateien wurde um 25% beschleunigt.
- Bei der Visualisierung wurde die Unterstützung für Alphamischungen auf Systemen mit neuen Versionen von OpenGL verbessert.
- Die Unterstützung für Objekte, die über das Schlüsselwort „classdef“ definiert sind, wurde verbessert. Bei der Zugriff auf Elemente eines Objekts über den Punkt (objekt.element) wird nun zuerst überprüft, ob Eigenschaften mit dem angegebenen Namen vorhanden sind; falls die Eigenschaft fehlt, werden die Methodennamen geprüft, was dem Verhalten von MatLab entspricht.
- Die Ausführung von Faltungsoperationen auf Arrays, bei denen die Anzahl der Spalten die Anzahl der Zeilen überschreitet, wurde erheblich beschleunigt (von 10% bis zu 150 Mal, abhängig von Größe und Form der Arrays).
- Die Möglichkeit zur Durchführung von Übertragungen (Broadcasting, Operationen an Arrays unterschiedlicher Dimensionen) spezieller Matrizenarten wie dünn besetzten, diagonalen und Permutationsmatrizen wurde hinzugefügt. Unter anderem wurde die Unterstützung gemischter Operationen zwischen dünn besetzten und vollständigen Matrizen sowie diagonalem Matrizen und gewöhnlichen Vektoren implementiert.
- Änderungen wurden vorgenommen, die die Kompatibilität mit Matlab verbessern. In den Funktionen cumprod, cumsum, min, max, cummin, cummax, prod, sum, sumsq, bounds, center, meansq, range, statistics und zscore wurde die Unterstützung der Parameter „all“, „vecdim“ und „nanflag“ hinzugefügt.
- Die Leistung der Funktionen sum, cumsum und sumsq wurde um bis zu das 6-fache gesteigert. Die Ausführungsgeschwindigkeit wurde um das 4,5-fache erhöht und der Speicherverbrauch in der Funktion randi um das 3,5-fache gesenkt.
- In der Funktion sum wurde ein Modus mit erhöhter Berechnungsgenauigkeit implementiert. Die Berechnungsgenauigkeit in den Funktionen norm und fzero wurde verbessert.
- Die Funktion roots und statistische Funktionen unterstützen jetzt Eingabedaten mit den Typen double und single.
- Neue Funktionen wurden hinzugefügt: _Exit, assert_equal, corrcov, dither, funm, mape, rms, rmse, trexc, xline und yline.

Quelle: opennet.ru
