Wydano system do wykonywania obliczeń matematycznych GNU Octave 11.1.0 (pierwsza wersja serii 11.x, wersja 11.0 była używana do rozwoju), który oferuje interpretowany język w dużej mierze kompatybilny z Matlabem. GNU Octave może być używany do rozwiązywania zadań liniowych, nieliniowych oraz równań różniczkowych, obliczeń z użyciem liczb zespolonych i macierzy, wizualizacji danych oraz prowadzenia eksperymentów matematycznych. Kod napisany jest w języku C++ (interfejs na Qt) i jest dystrybuowany na licencji GPLv3.
Wśród zmian w nowej wersji:
- Do menedżera pakietów pkg dodano nową komendę do wyszukiwania „pkg search foo bar baz”. W komendzie „pkg install” wprowadzono automatyczne rozpoznawanie, czy przekazany argument jest lokalnym plikiem, adresem URL czy nazwą pakietu. Zawiera lokalne buforowanie metadanych pakietów oraz weryfikację pobranych pakietów za pomocą hasha SHA256.
- Interfejs pracy z plikami (File Browse) został podzielony na dwie zakładki — jedna do nawigacji po zawartości systemu plików, a druga do przeglądania i zarządzania wszystkimi otwartymi w edytorze plikami.
- W oknie dialogowym wyszukiwania plików dodano listę wcześniej wysłanych zapytań, a także zrealizowano możliwość wyszukiwania plików według kilku masek.
- W interfejsie graficznym zastosowano wektorowe ikony w formacie SVG i domyślnie zapewniono standardowy interfejs wiersza poleceń Octave.
- Dodano opcje do ustawień, aby wyłączyć wygaszacz ekranu oraz używać w oknie dialogowym otwierania plików bieżącego katalogu, w którym uruchomiono edytor.
- Operacja drukowania do pliku PDF została przyspieszona o 25%.
- W wizualizacji poprawiono obsługę alpha blending na systemach z nowymi wersjami OpenGL.
- Poprawiono wsparcie dla obiektów zdefiniowanych za pomocą słowa kluczowego „classdef”. Przy dostępie do elementów obiektu przez kropkę (obiekt.element) najpierw sprawdzana jest obecność właściwości o podanej nazwie, a jeśli właściwość jest nieobecna — nazw metod, co odpowiada zachowaniu MatLab.
- Zdecydowanie przyspieszono (od 10% do 150 razy w zależności od rozmiaru i kształtu) wykonywanie operacji konwolucji macierzy, w których liczba kolumn przewyższa liczbę wierszy (macierze wektorów).
- Dodano możliwość wykonywania transmisji (broadcasting, operacji na macierzach o różnych wymiarach) specjalnych typów macierzy, takich jak macierze rzadkie, diagonalne oraz permutacyjne. Wśród innych funkcji wprowadzono wsparcie dla mieszanych operacji między macierzami rzadkimi i pełnymi, a także między macierzami diagonalnymi a zwykłymi wektorami.
- Wprowadzono zmiany, które poprawiają kompatybilność z Matlabem. W funkcjach cumprod, cumsum, min, max, cummin, cummax, prod, sum, sumsq, bounds, center, meansq, range, statistics oraz zscore dodano wsparcie dla parametrów „all”, „vecdim” oraz „nanflag”.
- Wydajność funkcji sum, cumsum i sumsq zwiększona do 6 razy. Zastosowanie funkcji randi przyspieszone aż do 4,5 razy, a zapotrzebowanie na pamięć zmniejszone do 3,5 razy.
- W funkcji sum wprowadzono tryb pracy z zwiększoną dokładnością obliczeń. Zwiększona dokładność obliczeń w funkcjach norm i fzero.
- Do funkcji roots oraz funkcji statystycznych dodano wsparcie dla danych wejściowych o typach double i single.
- Dodano nowe funkcje: _Exit, assert_equal, corrcov, dither, funm, mape, rms, rmse, trexc, xline oraz yline.

Źródło: opennet.ru
