Mercurial > web-octave
diff pages/NEWS-5.1.md @ 215:dedb85c54245
Reorganize homepage.
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Thu, 10 Sep 2020 17:47:36 +0900 |
parents | |
children | c8126c010d67 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pages/NEWS-5.1.md Thu Sep 10 17:47:36 2020 +0900 @@ -0,0 +1,323 @@ +--- +layout: page +title: GNU Octave Version 5 +menu: false +permalink: NEWS-5.1.html +--- + +## Summary of important user-visible changes + +February 23, 2019 + +{% include release_news_select.md %} + +{::options parse_block_html="true" /} +<div class="panel callout"> +* TOC +{:toc} +</div> +{::options parse_block_html="false" /} + +### General improvements + +- 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. + +- A new printing device is available, `"-ddumb"`, which produces ASCII + art for plots. This device is only available with the gnuplot toolkit. + + +### Dependencies + +- The GUI requires Qt libraries. The minimum Qt4 version supported is + Qt4.8. Qt5 of any version is preferred. + +- The OSMesa library is no longer used. To print invisible figures + when using OpenGL graphics, the Qt `QOFFSCREENSURFACE` feature must be + available and you must use the qt graphics toolkit. + +- The FFTW library is now required to perform FFT calculations. + The FFTPACK sources have been removed from Octave. + + +### Matlab compatibility + +- The determination of an object's dimensions, size, and shape by the + functions `ndims`, `rows`, `columns`, `isscalar`, `isvector`, + `isrow`, `iscolumn`, `ismatrix`, and `issquare` now fully depends + on the function size. Thus, any user-defined object can ensure correct + treatment by the aforementioned functions by properly overloading the + `size` function. + +- The functions `issymmetric` and `ishermitian` accept an option + `"nonskew"` or `"skew"` to calculate the symmetric or skew-symmetric + property of a matrix. Performance has also been increased. + +- The `issorted` function now uses a direction option of `"ascend"` + or `"descend"`. Change all uses of `"ascending"` and `"descending"` + in existing code to the new options. + +- The `strncmp` and `strncmpi` functions now return `true` if the two + input strings match, even though the number of characters specified + by `n` exceeds the string length. For Example: + + `strncmp ("abc", "abc", 100)` + + returns `true` in Octave 5 and `false` in older versions of Octave. + +- The `str2func` function no longer accepts a second `"global"` argument. + This argument was typically used to allow functions that accept + function names as arguments to avoid conflicts with subfunctions or + nested functions. Instead, it's best to avoid this situation + entirely and require users to pass function handles rather than + function names. + +- Using `clear` with no arguments now removes only local variables + from the current workspace. Global variables will no longer be + visible, but they continue to exist in the global workspace and + possibly other workspaces such as the base workspace. + + +#### Nonlinear Equations + +Several default solver options have been changed to be Matlab compatible. +This *may* result in existing code producing different results. + +- `fsolve` + + Option | New Default | Old Default + ---------------|------------------|------------- + `FinDiffType` | `"forward"` | `"central"` + `MaxFunEvals` | `100*length(x0)` | `Inf` + `TolFun` | `1e-6` | `1e-7` + `TolX` | `1e-6` | `1e-7` + `Updating` | `"off"` | `"on"` + +- `fminsearch` + + Option | New Default | Old Default + ---------|-------------|------------ + `TolFun` | `1e-7` | `1e-4` + +- `fminbnd` + + Option | New Default | Old Default + ---------------|-------------|------------ + `MaxFunEvals` | `500` | `Inf` + `MaxIter` | `500` | `Inf` + `TolX` | `1e-4` | `1e-8` + +- `fminunc` + + Option | New Default | Old Default + ---------------|------------------|------------ + `FinDiffType` | `"forward"` | `"central"` + `MaxFunEvals` | `100*length(x0)` | `Inf` + `TolX` | `1e-6` | `1e-7` + `TolFun` | `1e-6` | `1e-7` + + +#### Graphic objects + +- Figure graphic objects have a new property `"Number"` which is + read-only and will return the handle (number) of the figure. + However, if the property `"IntegerHandle"` has been set to `"off"` + then the property will return an empty matrix `[]`. + +- Patch and surface graphic objects now use the `"FaceNormals"` property + for flat lighting. + +- `"FaceNormals"` and `"VertexNormals"` for patch and surface graphic + objects are now calculated only when necessary to improve graphics + performance. In order for any normals to be calculated the + `"FaceLighting"` property must be set to `"flat"` (FaceNormals) or + `"gouraud"` (VertexNormals), **and** a light object must be present + in the axes. + +- The `"Margin"` property of `text`-objects has a new default of `3` + rather than `2`. + +- Printing to raster formats (bitmaps like PNG or JPEG) now uses an + OpenGL-based method by default. The print options `"-opengl"` + (raster) and `"-painters"` (vector) have been added ("qt" toolkit + only). The figure property `"renderer"` specifies which renderer to + use. When the property `"renderermode"` is `"auto"` Octave will select + `"-opengl"` for a raster output format and `"-painters"` for a vector + output format. + +- A new print option `"-RGBImage"` has been added which captures the + pixels of a figure as an image. This is similar to screen capture + tools, except that print formatting options can be used to, for + example, change the resolution or display the image in black and + white. + +- Two new print options for page-based formats (PDF, PostScript) have + been added. The `"-fillpage"` option will stretch the plot to occupy + the entire page with 0.25 inch margins all around. The `"-bestfit"` + option will expand the plot to take up as much room as possible on + the page without distorting the original aspect ratio of the plot. + +- Printing using the `"-dtiff"` output device will now create compressed + images using LZW compression. To produce uncompressed images use the + `"-dtiffn"` device. + + +### Legacy functions + +The following functions have been declared legacy functions which +means they are obsolete and should not be used in any new code. +Unlike deprecated functions, however, their removal from Octave has +not yet been scheduled. + + Function | Replacement + -----------------------|------------------ + `findstr` | `strfind` + `flipdim` | `flip` + `isdir` | `isfolder` or `dir_in_loadpath` + `isequalwithequalnans` | `isequaln` + `isstr` | `ischar` + `setstr` | `char` + `strmatch` | `strncmp` or `strcmp` + `strread` | `textscan` + `textread` | `textscan` + + +### Deprecated functions and properties + +The following functions and graphics properties have been deprecated +in Octave 5 and will be removed from Octave 7 (or whatever version +is the second major release after 5): + +- Functions + + Function | Replacement + -------------------------|------------------- + `output_max_field_width` | `output_precision` + `is_keyword` | `iskeyword` + +- Graphics properties + + Object | Property | Value + -----------------|---------------|------------ + `text` | `fontangle` | `"oblique"` + `uibuttongroup` | `fontangle` | `"oblique"` + `uicontrol` | `fontangle` | `"oblique"` + `uipanel` | `fontangle` | `"oblique"` + `uitable` | `fontangle` | `"oblique"` + +- Specifying `legend` position with a numeric argument is deprecated. + Use a string argument instead. + +- The environment variable used by `mkoctfile` for linker flags is now + `LDFLAGS` rather than `LFLAGS`. `LFLAGS` is deprecated, and a warning + is emitted if is used, but it will continue to work. + + +### Removed functions and properties + +The following functions and properties were deprecated in Octave 4.2 +and have been removed from Octave 5. + +- Functions + + Function | Replacement + -----------------------|------------------ + `bitmax` | `flintmax` + `mahalanobis` | `mahal` in Octave Forge statistics pkg + `md5sum` | `hash` + `octave_config_info` | `__octave_config_info__` + `onenormest` | `normest1` + `sleep` | `pause` + `usleep` | `pause` + `wavread` | `audioread` + `wavwrite` | `audiowrite` + +- Properties + + Object | Property | Value + ------------|-------------------|--------- + `axes` | `xaxislocation` | `"zero"` + | `yaxislocation` | `"zero"` + `hggroup` | `erasemode` | + `image` | `erasemode` | + `line` | `erasemode` | + `patch` | `erasemode` | + `patch` | `normalmode` | + `surface` | `erasemode` | + `surface` | `normalmode` | + `text` | `erasemode` | + + +### Alphabetical list of new functions added in 5 + +- `clearvars` +- `isfile` +- `isfolder` +- `matlab.lang.makeUniqueStrings` +- `matlab.lang.makeValidName` +- `movegui` +- `movfun` +- `movie` +- `movmad` +- `movmax` +- `movmean` +- `movmedian` +- `movmin` +- `movprod` +- `movslice` +- `movstd` +- `movsum` +- `movvar` +- `openfig` +- `ordeig` +- `savefig` +- `uitable`