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`