February 23, 2019

News for version 5 4.4 4.2 4 3.8 3.6 3.4 3.2 3 2 1 (Release History)

The Octave plotting system now supports high resolution screens, i.e., those with greater than 96 DPI which are referred to as HiDPI/Retina monitors.

Unicode character support for files and folders in Windows.

A new core function movfun will apply a function to a sliding window of arbitrary size on a dataset and accumulate the results. Many common cases have been implemented using the naming scheme movXXX where XXX is the function that will be applied. For example, the moving average over a dataset is movmean . New moving window functions: movfun movslice movmad movmax movmean movmedian movmin movprod movstd movsum movvar

The fsolve function has been tweaked to use larger step sizes when calculating the Jacobian of a function with finite differences. This leads to faster convergence.

The ranks function has been recoded for performance and is now 25X faster. In addition, it now supports a third argument that specifies how to resolve the ranking of tie values.

The function randi has been recoded to produce an unbiased (all results are equally likely) sample of integers. This may produce different results in existing code. If it is necessary to reproduce the exact random integer sequence as in previous versions use ri = imin + floor ((imax - imin + 1) * rand ());

The function isdefinite now returns true or false rather than -1 , 0 , or 1 . To test for a positive semi-definite matrix (old output of 0 ) check whether the following two conditions hold: isdefinite (A) => 0 and isdefinite (A + 5*TOL, TOL) => 1

The intmax , intmin , and flintmax functions now accept a variable as input. Existing code to query the range of an existing variable can be simplified by removing the call to class that was previously required. For example defining the variable x = int8 (3) in the workspace, calls like range = [ intmin(class(x)), intmax(class(x)) ] can in Octave 5 be simplified to range = [ intmin(x), intmax(x) ] .

The path handling functions no longer perform variable or brace expansion on path elements and Octave’s load-path is no longer subject to these expansions.