comparison NEWS-5.1.md @ 166:afa95c42b86b

new files for 5.1 release * NEWS-5.1.md, _posts/2019-03-01-octave-5.1-released.markdown: New files.
author John W. Eaton <jwe@octave.org>
date Fri, 01 Mar 2019 10:33:04 -0500
parents
children 0b3d9f76c7cd
comparison
equal deleted inserted replaced
165:2309b737d2b6 166:afa95c42b86b
1 ---
2 layout: default
3 ---
4
5 <pre>
6 Summary of important user-visible changes for version 5 (2019-02-23):
7 --------------------------------------------------------------------
8
9 ** The determination of an object's dimensions, size, and shape by the
10 functions ndims, rows, columns, isscalar, isvector, isrow, iscolumn,
11 ismatrix, and issquare now fully depends on the function size.
12 Thus, any user-defined object can ensure correct treatment by the
13 aforementioned functions by properly overloading the "size"
14 function.
15
16 ** The function randi has been recoded to produce an unbiased (all
17 results are equally likely) sample of integers. This may produce
18 different results in existing code. If it is necessary to reproduce
19 the exact random integer sequence as in previous versions use
20
21 ri = imin + floor ((imax - imin + 1) * rand ());
22
23 ** A new core function movfun will apply a function to a sliding
24 window of arbitrary size on a dataset and accumulate the results.
25 Many common cases have been implemented using the naming
26 scheme movXXX where "XXX" is the function that will be applied.
27 For example, the moving average over a dataset is movmean.
28 New moving window functions:
29
30 movfun movslice
31 movmad movmax movmean movmedian movmin movprod
32 movstd movsum movvar
33
34 ** The functions issymmetric and ishermitian accept an option "nonskew"
35 or "skew" to calculate the symmetric or skew-symmetric property
36 of a matrix. Performance has also been increased.
37
38 ** The function isdefinite now returns true or false rather than
39 -1, 0, 1. To test for a positive semi-definite matrix (old output
40 of 0) check whether the following two conditions hold:
41
42 isdefinite (A) => 0
43 isdefinite (A + 5*TOL, TOL) => 1
44
45 ** The issorted function now uses a direction option of "ascend" or
46 "descend" to make it compatible with both the sort function and
47 with Matlab. Change all uses of "ascending" and "descending" in
48 existing code to the new options.
49
50 ** The strncmp and strncmpi functions now return true if the two input
51 strings match, even though the number of characters specified by N
52 exceeds the string length. This behavior more closely matches
53 common sense and is Matlab compatible. Example:
54
55 Octave 5 : strncmp ("abc", "abc", 100) => true
56 Previously : strncmp ("abc", "abc", 100) => false
57
58 ** The intmax, intmin, and flintmax functions now accept a variable
59 as input. This supports a common programming usage which is to
60 query the range of an existing variable. Existing code can be
61 simplified by removing the call to "class" that was previously
62 required. Example:
63
64 x = int8 (3);
65 Octave 5 : range = [ intmin(x), intmax(x) ]
66 Previously : range = [ intmin(class(x)), intmax(class(x)) ]
67
68 ** The ranks function has been recoded for performance and is now 25X
69 faster. In addition, it now supports a third argument that
70 specifies how to resolve the ranking of tie values.
71
72 ** The fsolve function has been tweaked to use larger step sizes when
73 calculating the Jacobian of a function with finite differences.
74 This leads to faster convergence. The default solver options have
75 also changed to be Matlab compatible. This *may* result in existing
76 code producing different results.
77
78 Option | New Default | Old Default
79 ------------------------------------------------
80 FinDiffType | "forward" | "central"
81 MaxFunEvals | 100*length(x0) | Inf
82 TolFun | 1e-6 | 1e-7
83 TolX | 1e-6 | 1e-7
84 Updating | "off" | "on"
85
86 ** The fminsearch function has changed default solver options for
87 Matlab compatibility. The accuracy option TolFun is now 1e-4 rather
88 than 1e-7. This *may* result in existing code producing different
89 results.
90
91 ** The fminbnd function has changed defaults for Matlab compatibility.
92 This *may* result in existing code producing different results.
93
94 Option | New Default | Old Default
95 ------------------------------------------------
96 MaxFunEvals | 500 | Inf
97 MaxIter | 500 | Inf
98 TolX | 1e-4 | 1e-8
99
100 ** The fminunc function has changed defaults for Matlab compatibility.
101 This *may* result in existing code producing different results.
102
103 Option | New Default | Old Default
104 ------------------------------------------------
105 FinDiffType | "forward" | "central"
106 MaxFunEvals | 100*length(x0) | Inf
107 TolX | 1e-6 | 1e-7
108 TolFun | 1e-6 | 1e-7
109
110 ** Using "clear" with no arguments now removes only local variables
111 from the current workspace. Global variables will no longer be
112 visible, but they continue to exist in the global workspace and
113 possibly other workspaces such as the base workspace.
114 This change was made for Matlab compatibility.
115
116 ** The Octave plotting system now supports high resolution screens,
117 i.e, those with greater than 96 DPI which are referred to as
118 HiDPI/Retina monitors.
119
120 ** Figure graphic objects have a new property "Number" which is
121 read-only and will return the handle (number) of the figure.
122 However, if the property "IntegerHandle" has been set to "off" then
123 the property will return an empty matrix ([]).
124
125 ** Patch and surface graphic objects now use the "FaceNormals" property
126 for flat lighting.
127
128 ** "FaceNormals" and "VertexNormals" for patch and surface graphic
129 objects are now calculated only when necessary to improve graphics
130 performance. In order for any normals to be calculated the
131 "FaceLighting" property must be set to "flat" (FaceNormals) or
132 "gouraud" (VertexNormals), AND a light object must be present in the
133 axes.
134
135 ** The "Margin" property of text() objects has a new default of 3
136 rather than 2. This change was made for Matlab compatibility.
137
138 ** Printing to raster formats (bitmaps like PNG or JPEG) now uses an
139 OpenGL-based method by default. The print options "-opengl"
140 (raster) and "-painters" (vector) have been added ("qt" toolkit
141 only). The figure property "renderer" specifies which renderer to
142 use. When the property "renderermode" is "auto" Octave will select
143 -opengl for a raster output format and -painters for a vector output
144 format.
145
146 ** A new print option "-RGBImage" has been added which captures the
147 pixels of a figure as an image. This is similar to screen capture
148 tools, except that print formatting options can be used to, for
149 example, change the resolution or display the image in black and
150 white.
151
152 ** Two new print options for page-based formats (PDF, PostScript) have
153 been added. The "-fillpage" option will stretch the plot to occupy
154 the entire page with 0.25 inch margins all around. The "-bestfit"
155 option will expand the plot to take up as much room as possible on
156 the page without distorting the original aspect ratio of the plot.
157
158 ** Printing using the -dtiff output device will now create compressed
159 images using LZW compression. This change was made for Matlab
160 compatibility. To produce uncompressed images use the -dtiffn
161 device.
162
163 ** A new printing device is available, -ddumb, which produces ASCII art
164 for plots. This device is only available with the gnuplot toolkit.
165
166 ** Specifying legend position with a numeric argument is deprecated and
167 will be removed in Octave 7.0. Use a string argument instead.
168
169 ** It is now possible to use files and folders containing Unicode
170 characters in Windows.
171
172 ** The environment variable used by mkoctfile for linker flags is now
173 LDFLAGS rather than LFLAGS. LFLAGS is deprecated, and a warning
174 is emitted if is used, but it will continue to work until eventual
175 removal in Octave 7.0.
176
177 ** The GUI requires Qt libraries. The minimum Qt4 version supported is
178 Qt4.8. Qt5 of any version is preferred.
179
180 ** The FFTW library is now required to perform FFT calculations.
181 The FFTPACK sources have been removed from Octave.
182
183 ** The OSMesa library is no longer used. To print invisible figures
184 when using OpenGL graphics, the Qt QOFFSCREENSURFACE feature must be
185 available and you must use the qt graphics toolkit.
186
187 ** The str2func function no longer accepts a second "global" argument.
188 This argument was typically used to allow functions that accept
189 function names as arguments to avoid conflicts with subfunctions or
190 nested functions. Instead, it's best to avoid this situation
191 entirely and require users to pass function handles rather than
192 function names.
193
194 ** The path handling functions no longer perform variable or brace
195 expansion on path elements and Octave's load-path is no longer
196 subject to these expansions.
197
198 ** New functions added in 5:
199
200 clearvars
201 isfile
202 isfolder
203 matlab.lang.makeUniqueStrings
204 matlab.lang.makeValidName
205 movegui
206 movfun
207 movie
208 movmad
209 movmax
210 movmean
211 movmedian
212 movmin
213 movprod
214 movslice
215 movstd
216 movsum
217 movvar
218 openfig
219 ordeig
220 savefig
221 uitable
222
223 ** Legacy functions.
224
225 The following functions have been declared legacy functions which
226 means they are obsolete and should not be used in any new code.
227 Unlike deprecated functions, however, their removal from Octave has
228 not yet been scheduled.
229
230 Function | Replacement
231 ---------------------|------------------
232 findstr | strfind
233 flipdim | flip
234 isdir | isfolder or dir_in_loadpath
235 isequalwithequalnans | isequaln
236 isstr | ischar
237 setstr | char
238 strmatch | strncmp or strcmp
239 strread | textscan
240 textread | textscan
241
242 ** Deprecated functions.
243
244 The following functions have been deprecated in Octave 5 and will
245 be removed from Octave 7 (or whatever version is the second major
246 release after 5):
247
248 Function | Replacement
249 -----------------------|------------------
250 output_max_field_width | output_precision
251
252 ** The following functions were deprecated in Octave 4.2 and have been
253 removed from Octave 5.
254
255 Function | Replacement
256 ---------------------|------------------
257 bitmax | flintmax
258 mahalanobis | mahal in Octave Forge statistics pkg
259 md5sum | hash
260 octave_config_info | __octave_config_info__
261 onenormest | normest1
262 sleep | pause
263 usleep | pause
264 wavread | audioread
265 wavwrite | audiowrite
266
267 ** Deprecated graphics properties.
268
269 The following properties or allowed corresponding values have been
270 deprecated in Octave 5 and will be removed from Octave 7 (or
271 whatever version is the second major release after 5):
272
273 Object | Property | Value
274 ---------------------|-------------------------|-------------------
275 text | fontangle | "oblique"
276 uibuttongroup | fontangle | "oblique"
277 uicontrol | fontangle | "oblique"
278 uipanel | fontangle | "oblique"
279 uitable | fontangle | "oblique"
280
281 ** The following properties or allowed corresponding values were
282 deprecated in Octave 4.2 and have been removed from Octave 5:
283
284 Object | Property | Value
285 ---------------------|-------------------------|-------------------
286 axes | xaxislocation | "zero"
287 | yaxislocation | "zero"
288 hggroup | erasemode |
289 image | erasemode |
290 line | erasemode |
291 patch | erasemode |
292 patch | normalmode |
293 surface | erasemode |
294 surface | normalmode |
295 text | erasemode |
296
297 ** The C++ function is_keyword has been deprecated in favor of
298 iskeyword. The old function will be removed two versions after 5.
299
300 ---------------------------------------------------------
301
302 See NEWS.4 for old news.
303 </pre>