Mercurial > octave
view NEWS @ 26126:f6f16b842d5d
NEWS: Announce change to intmin, intmax, flintmax to accept a variable as input.
* NEWS: Announce change to intmin, intmax, flintmax to accept a variable as
input.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 22 Nov 2018 13:11:40 -0800 |
parents | df1cf0f7883a |
children | 1ae11ca7dceb |
line wrap: on
line source
Summary of important user-visible changes for version 5.0 (yyyy-mm-dd): ---------------------------------------------------------------------- ** 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" to make it compatible with both the sort function and with Matlab. 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. This behavior more closely matches common sense and is Matlab compatible. Example: Octave 5.0 : strncmp ("abc", "abc", 100) => true Previously : strncmp ("abc", "abc", 100) => false ** The intmax, intmin, and flintmax functions now accept a variable as input. This supports a common programming usage which is to query the range of an existing variable. Existing code can be simplified by removing the call to "class" that was previously required. Example: x = int8 (3); Octave 5.0 : range = [ intmin(x), intmax(x) ] Previously : range = [ intmin(class(x)), intmax(class(x)) ] ** 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 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 default solver options have also changed to be Matlab compatible. This *may* result in existing code producing different results. 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" ** The fminsearch function has changed default solver options for Matlab compatibility. The accuracy option TolFun is now 1e-4 rather than 1e-7. This *may* result in existing code producing different results. ** The fminbnd function has changed defaults for Matlab compatibility. This *may* result in existing code producing different results. Option | New Default | Old Default ------------------------------------------------ MaxFunEvals | 500 | Inf MaxIter | 500 | Inf TolX | 1e-4 | 1e-8 ** 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. ** 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. This change was made for Matlab compatibility. To produce uncompressed images use the -dtiffn device. ** It is now possible to use files and folders containing Unicode characters in Windows. ** The FFTW library is now required to perform FFT calculations. The FFTPACK sources have been removed from Octave. ** 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 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. ** New functions added in 5.0: isfile isfolder movegui openfig ordeig savefig uitable ** 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. The following functions have been deprecated in Octave 5.0 and will be removed from Octave 7 (or whatever version is the second major release after 5.0): Function | Replacement ---------------------|------------------ | ** The following functions were deprecated in Octave 4.2 and have been removed from Octave 5.0. 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 ** Deprecated graphics properties. The following properties or allowed corresponding values have been deprecated in Octave 5.0 and will be removed from Octave 7 (or whatever version is the second major release after 5.0): Object | Property | Value ---------------------|-------------------------|------------------- text | fontangle | "oblique" uibuttongroup | fontangle | "oblique" uicontrol | fontangle | "oblique" uipanel | fontangle | "oblique" uitable | fontangle | "oblique" ** The following properties or allowed corresponding values were deprecated in Octave 4.2 and have been removed from Octave 5.0: Object | Property | Value ---------------------|-------------------------|------------------- axes | xaxislocation | "zero" | yaxislocation | "zero" hggroup | erasemode | image | erasemode | line | erasemode | patch | erasemode | patch | normalmode | surface | erasemode | surface | normalmode | text | erasemode | ** The C++ function is_keyword has been deprecated in favor of iskeyword. The old function will be removed two versions after 5.0. --------------------------------------------------------- See NEWS.4 for old news.