Die neue Version des mathematischen Systems GNU Octave 11.1.0 wurde veröffentlicht (der erste Release der Serie 11.x, wobei der Branch 11.0 für die Entwicklung verwendet wurde). Es bietet eine interpretierte Sprache, die größtenteils mit Matlab kompatibel ist. GNU Octave kann zur Lösung von linearen und nichtlinearen Gleichungen, Differentialgleichungen, Berechnungen mit komplexen Zahlen und Matrizen, zur Datenvisualisierung und zur Durchführung mathematischer Experimente verwendet werden. Der Code ist in C++ geschrieben (mit Qt-Interface) und wird unter der Lizenz GPLv3 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“. Der Befehl „pkg install“ erkennt nun automatisch, ob das übergebene Argument eine lokale Datei, eine URL oder ein Paketname ist. Lokales Caching von Paketmetadaten und die Verifizierung der heruntergeladenen Pakete anhand des SHA256-Hashes wurden integriert.
- Die Benutzeroberfläche zur Dateiverwaltung (File Browse) wurde in zwei Registerkarten unterteilt – eine für die Navigation im Dateisystem und die andere zur Ansicht und Verwaltung aller im Editor geöffneten Dateien.
- Im Dialog zur Dateisuche wurde eine Liste der zuvor gesendeten Suchanfragen hinzugefügt, und es ist möglich, Dateien nach mehreren Masken zu durchsuchen.
- Im grafischen Benutzerinterface kommen Vektor-Icons im SVG-Format zum Einsatz, und standardmäßig wird die integrierte Kommandozeilenoberfläche von Octave bereitgestellt.
- Die Einstellungen wurden um Optionen zum Deaktivieren des Bildschirmschoners und zur Verwendung des aktuellen Verzeichnisses im Dateiauswahldialog erweitert, in dem der Editor gestartet wurde.
- Der Druckvorgang in PDF-Dateien wurde um 25 % beschleunigt.
- Die Unterstützung für Alpha-Mischung wurde bei der Visualisierung auf Systemen mit neuen Versionen von OpenGL verbessert.
- Die Unterstützung für Objekte, die mit dem Schlüsselwort «classdef» definiert sind, wurde optimiert. Bei der Ansprache von Elementen eines Objekts über den Punkt (objekt.element) wird zunächst nach Eigenschaften mit dem angegebenen Namen gesucht. Falls diese Eigenschaft nicht vorhanden ist, wird nach Methoden gesucht, was dem Verhalten von MatLab entspricht.
- Die Ausführung von Faltungsoperationen auf Arrays, deren Spaltenanzahl die Zeilenanzahl übersteigt (Vektor-Arrays), wurde signifikant beschleunigt (von 10 % bis zu 150 Mal, abhängig von Größe und Form).
- Die Möglichkeit, Broadcasting-Operationen auf Arrays unterschiedlicher Dimensionen mit speziellen Matrizenarten wie spärlichen, diagonalen und permutierten Matrizen durchzuführen, wurde hinzugefügt. Unter anderem wurde die Unterstützung für gemischte Operationen zwischen spärlichen und vollständigen Matrizen sowie diagonalen Matrizen und normalen Vektoren implementiert.
- Änderungen wurden vorgenommen, um die Kompatibilität mit Matlab zu verbessern. In den Funktionen cumprod, cumsum, min, max, cummin, cummax, prod, sum, sumsq, bounds, center, meansq, range, statistics und zscore wurde die Unterstützung für die Parameter „all“, „vecdim“ und „nanflag“ hinzugefügt.
- Die Leistung der Funktionen sum, cumsum und sumsq wurde um bis zu 6 Mal erhöht. Die Effizienz der Funktion randi wurde um das 4,5-fache gesteigert und der Speicherverbrauch um das 3,5-fache reduziert.
- In der Funktion sum wurde ein Modus für präzisere Berechnungen implementiert. Die Genauigkeit der Berechnungen wurde in den Funktionen norm und fzero erhöht.
- In die Funktionen roots und statistische Funktionen wurde die Unterstützung für Eingabedaten vom Typ double und single integriert.
- Neue Funktionen wurden hinzugefügt: _Exit, assert_equal, corrcov, dither, funm, mape, rms, rmse, trexc, xline und yline.

Quelle: opennet.ru
