Mercurial > web-octave
comparison pages/NEWS-4.0.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 |
comparison
equal
deleted
inserted
replaced
214:fe5dcb23372a | 215:dedb85c54245 |
---|---|
1 --- | |
2 layout: page | |
3 title: GNU Octave Version 4.0 | |
4 menu: false | |
5 permalink: NEWS-4.0.html | |
6 --- | |
7 | |
8 ## Summary of important user-visible changes | |
9 | |
10 May 23, 2015 | |
11 | |
12 {% include release_news_select.md %} | |
13 | |
14 <pre> | |
15 ** A graphical user interface is now the default when running Octave | |
16 interactively. The start-up option --no-gui will run the familiar | |
17 command line interface, and still allows use of the GUI dialogs and | |
18 qt plotting toolkit. The option --no-gui-libs runs a minimalist | |
19 command line interface that does not link with the Qt libraries and | |
20 uses the fltk toolkit for plotting. | |
21 | |
22 ** Octave now uses OpenGL graphics with Qt widgets by default. If OpenGL | |
23 libraries are not available when Octave is built, gnuplot is used. | |
24 You may choose to use the fltk or gnuplot toolkit for graphics by | |
25 executing the command | |
26 | |
27 graphics_toolkit ("fltk") | |
28 OR | |
29 graphics_toolkit ("gnuplot") | |
30 | |
31 Adding such a command to your ~/.octaverc file will set the default | |
32 for each session. | |
33 | |
34 ** A new syntax for object oriented programming termed classdef has been | |
35 introduced. See the manual for more extensive documentation of the | |
36 classdef interface. | |
37 | |
38 New keywords: | |
39 | |
40 classdef endclassdef | |
41 enumeration endenumeration | |
42 events endevents | |
43 methods endmethods | |
44 properties endproperties | |
45 | |
46 ** New audio functions and classes: | |
47 | |
48 audiodevinfo audioread sound | |
49 audioinfo audiorecorder soundsc | |
50 audioplayer audiowrite | |
51 | |
52 ** Other new classes in Octave 4.0: | |
53 | |
54 audioplayer inputParser | |
55 audiorecorder | |
56 | |
57 ** Optional stricter Matlab compatibility for ranges, diagonal matrices, | |
58 and permutation matrices. | |
59 | |
60 Octave has internal optimizations which use space-efficient storage | |
61 for the three data types above. Three new functions have been added | |
62 which control whether the optimizations are used (default), or whether | |
63 the data types are stored as full matrices. | |
64 | |
65 disable_range disable_diagonal_matrix disable_permutation_matrix | |
66 | |
67 All three optimizations are disabled if Octave is started with the | |
68 --braindead command line option. | |
69 | |
70 ** The preference | |
71 | |
72 do_braindead_shortcircuit_evaluation | |
73 | |
74 is now enabled by default. | |
75 | |
76 ** The preference | |
77 | |
78 allow_noninteger_range_as_index | |
79 | |
80 is now enabled by default and the warning ID | |
81 | |
82 Octave:noninteger-range-as-index | |
83 | |
84 is now set to "on" by default instead of "error" by default and "on" | |
85 for --traditional. | |
86 | |
87 ** The "backtrace" warning option is now enabled by default. This change | |
88 was made for Matlab compatibility. | |
89 | |
90 ** For compatibility with Matlab, the "ismatrix (x)" function now only checks | |
91 the dimension of "x". The old behaviour of "ismatrix" is obtained by | |
92 "isnumeric (x) || islogical (x) || ischar (x)". | |
93 | |
94 ** The nextpow2 function behaviour has been changed for vector inputs. | |
95 Instead of computing `nextpow2 (length (x))', it will now compute | |
96 nextpow2 for each element of the input. This change is Matlab compatible, | |
97 and also prevents bugs for "vectors" of length 1. | |
98 | |
99 ** polyeig now returns a row vector of eigenvalues rather than a matrix | |
100 with the eigenvalues on the diagonal. This change was made for Matlab | |
101 compatibility. | |
102 | |
103 ** Interpolation function changes for Matlab compatibility | |
104 | |
105 The interpolation method 'cubic' is now equivalent to 'pchip' | |
106 for interp1, interp2, and interp3. Previously, 'cubic' was equivalent | |
107 to 'spline' for interp2. This may produce different results as 'spline' | |
108 has continuous 1st and 2nd derivatives while 'pchip' only has a continuous | |
109 1st derivative. The methods 'next' and 'previous' have been added to | |
110 interp1 for compatibility. | |
111 | |
112 ** The delaunay function has been extended to accept 3-D inputs for | |
113 Matlab compatibility. The delaunay function no longer plots the | |
114 triangulation if no output argument is requested, instead, the | |
115 triangulation is always returned. The delaunay3 function which | |
116 handles 3-D inputs has been deprecated in favor of delaunay. | |
117 | |
118 ** The trigonometric functions asin and acos return different phase values | |
119 from previous versions of Octave when the input is outside the principal | |
120 branch ([-1, 1]). If the real portion of the input is greater than 1 then | |
121 the limit from below is taken. If the real portion is less than 1 then the | |
122 limit from above is taken. This criteria is consistent with several other | |
123 numerical analysis software packages. | |
124 | |
125 ** The hyperbolic function acosh now returns values with a phase in the range | |
126 [-pi/2, +pi/2]. Previously Octave returned values in the range [0, pi]. | |
127 This is consistent with several other numerical analysis software packages. | |
128 | |
129 ** strfind changes when using empty pattern ("") for Matlab compatibility | |
130 | |
131 strfind now returns an empty array when the pattern itself is empty. | |
132 In previous versions of Octave, strfind matched at every character | |
133 location when the pattern was empty. | |
134 | |
135 NEW | |
136 strfind ("abc", "") => [] | |
137 OLD | |
138 strfind ("abc", "") => [1, 2, 3, 4] | |
139 | |
140 ** Integer formats used in the printf family of functions now work for | |
141 64-bit integers and are more compatible with Matlab when printing | |
142 non-integer values. Now instead of truncating, Octave will switch | |
143 the effective format to '%g' in the following circumstances: | |
144 | |
145 * the value of an integer type (int8, uint32, etc.) value exceeds | |
146 the maximum for the format specifier. For '%d', the limit is | |
147 intmax ('int64') and for '%u' it is intmax ('uint64'). | |
148 | |
149 * round(x) != x or the value is outside the range allowed by the | |
150 integer format specifier. | |
151 | |
152 There is still one difference: Matlab switches to '%e' and Octave | |
153 switches to '%g'. | |
154 | |
155 ** The functions intersect, setdiff, setxor, and union now return a | |
156 column vector as output unless the input was a row vector. This change | |
157 was made for Matlab compatibility. | |
158 | |
159 ** The inpolygon function now returns true for points that are within | |
160 the polygon OR on it's edge. This change was made for Matlab | |
161 compatibility. | |
162 | |
163 ** The archive family of functions (bzip2, gzip, zip, tar) and their | |
164 unpacking routines (bunzip2, gunzip, unzip, untar, unpack) have | |
165 been recoded. Excepting unpack, the default is now to place files | |
166 in the same directory as the archive (on unpack) or as the original | |
167 files (on archiving). | |
168 | |
169 ** Qt and FLTK graphics toolkits now support offscreen rendering on Linux. | |
170 In other words, print will work even when the figure visibility is "off". | |
171 | |
172 ** Z-order stacking issues with patches, grid lines, and line object | |
173 plot markers for on screen display and printing have all been resolved. | |
174 For 2-D plots the axis grid lines can be placed on top of the plot | |
175 with set (gca, "layer", "top"). | |
176 | |
177 ** The patch graphic object has been overhauled. It now produces visual | |
178 results equivalent to Matlab even for esoteric combinations of | |
179 faces/vertices/cdata. | |
180 | |
181 ** The polar() plot function now draws a circular theta axis and | |
182 radial rho axis rather than using a rectangular x/y axis. | |
183 | |
184 ** linkprop has been completely re-coded for performance and Matlab | |
185 compatibility. It now returns a linkprop object which must be stored | |
186 in a variable for as long as the graphic objects should remain linked. | |
187 To unlink properties use 'clear hlink' where hlink is the variable | |
188 containing the linkprop object. | |
189 | |
190 ** isprime has been extended to operate on negative and complex inputs. | |
191 | |
192 ** xor has been extended to accept more than two arguments in which case | |
193 it performs cumulative XOR reduction. | |
194 | |
195 ** The following functions now support N-dimensional arrays: | |
196 | |
197 fliplr flipud rot90 rectint | |
198 | |
199 ** The new warning ID "Octave:data-file-in-path" replaces the three | |
200 previous separate warning IDs "Octave:fopen-file-in-path", | |
201 "Octave:load-file-in-path", and "Octave:md5sum-file-in-path". | |
202 | |
203 ** The warning ID Octave:singular-matrix-div has been replaced by | |
204 Octave:nearly-singular-matrix and Octave:singular-matrix. | |
205 | |
206 ** The warning ID Octave:matlab-incompatible has been replaced by | |
207 Octave:language-extension to better reflect its meaning. | |
208 | |
209 ** The warning ID Octave:broadcast has been removed. Instead automatic | |
210 broadcasting will throw an Octave:language-extension warning. This | |
211 warning ID is used for broadcasting as well as other features not | |
212 available in Matlab. | |
213 | |
214 ** Other new functions added in 4.0: | |
215 | |
216 annotation | |
217 bandwidth | |
218 cubehelix | |
219 dir_in_loadpath | |
220 flip | |
221 frame2im | |
222 get_home_directory | |
223 hgload | |
224 hgsave | |
225 ichol | |
226 ilu | |
227 im2frame | |
228 isbanded | |
229 isdiag | |
230 isstudent | |
231 istril | |
232 istriu | |
233 javachk | |
234 jit_failcnt | |
235 linkaxes | |
236 lscov | |
237 metaclass | |
238 numfields | |
239 open | |
240 ordschur | |
241 pan | |
242 qmr | |
243 rotate | |
244 rotate3d | |
245 sylvester | |
246 unsetenv | |
247 validateattributes | |
248 zoom | |
249 | |
250 ** inline() scheduled for eventual deprecation by Matlab | |
251 | |
252 Functions created through the use of inline are scheduled for deprecation | |
253 by Matlab. When this occurs Octave will continue to support inline | |
254 functions for an indeterminate amount of time before also removing support. | |
255 All new code should use anonymous functions in place of inline functions. | |
256 | |
257 ** Deprecated functions. | |
258 | |
259 The following functions have been deprecated in Octave 4.0 and will | |
260 be removed from Octave 4.4 (or whatever version is the second major | |
261 release after 4.0): | |
262 | |
263 Function | Replacement | |
264 ---------------------|------------------ | |
265 bicubic | interp2 | |
266 delaunay3 | delaunay | |
267 dump_prefs | individual preference get/set routines | |
268 find_dir_in_path | dir_in_loadpath | |
269 finite | isfinite | |
270 fmod | rem | |
271 fnmatch | glob or regexp | |
272 loadaudio | audioread | |
273 luinc | ilu or ichol | |
274 mouse_wheel_zoom | mousewheelzoom axes property | |
275 nfields | numfields | |
276 octave_tmp_file_name | tempname | |
277 playaudio | audioplayer | |
278 saveaudio | audiowrite | |
279 syl | sylvester | |
280 usage | print_usage | |
281 | |
282 allow_noninteger_range_as_index | |
283 do_braindead_shortcircuit_evaluation | |
284 setaudio | |
285 | |
286 ** The following functions were deprecated in Octave 3.8 and will be | |
287 removed from Octave 4.2 (or whatever version is the second major | |
288 release after 3.8): | |
289 | |
290 default_save_options java_new | |
291 gen_doc_cache java_unsigned_conversion | |
292 interp1q javafields | |
293 isequalwithequalnans javamethods | |
294 java_convert_matrix re_read_readline_init_file | |
295 java_debug read_readline_init_file | |
296 java_invoke saving_history | |
297 | |
298 ** The following functions were deprecated in Octave 3.6 and have been | |
299 removed from Octave 4.0. | |
300 | |
301 cut polyderiv | |
302 cor shell_cmd | |
303 corrcoef studentize | |
304 __error_text__ sylvester_matrix | |
305 error_text | |
306 | |
307 ** The following keywords were deprecated in Octave 3.8 and have been | |
308 removed from Octave 4.0 | |
309 | |
310 static | |
311 | |
312 ** The following configuration variables were deprecated in Octave 3.8 | |
313 and have been removed from Octave 4.0 | |
314 | |
315 CC_VERSION (now GCC_VERSION) | |
316 CXX_VERSION (now GXX_VERSION) | |
317 | |
318 ** The internal function atan2 of the sparse matrix class has been deprecated | |
319 in Octave 4.0 and will be removed from Octave 4.4 (or whatever version is | |
320 the second major release after 4.0). Use the Fatan2 function with sparse | |
321 inputs as a replacement. | |
322 | |
323 ** The internal class Octave_map was deprecated in Octave 3.8 and has | |
324 been removed from Octave 4.0. Replacement classes are | |
325 octave_map (struct array) or octave_scalar_map for a single structure. | |
326 | |
327 ** The configure option --enable-octave-allocator has been removed. | |
328 The internal class octave_allocator declared in oct-alloc.h has | |
329 been removed. The header remains, but is deprecated. The macros to | |
330 access the class (DECLARE_OCTAVE_ALLOCATOR, DEFINE_OCTAVE_ALLOCATOR, | |
331 and DEFINE_OCTAVE_ALLOCATOR2) are now unconditionally defined to be | |
332 empty. | |
333 | |
334 ** Octave now has OpenMP enabled by default if the system provides a | |
335 working OpenMP implementation. This allows oct-file modules to take | |
336 advantage of OpenMP if desired. This can be disabled when building | |
337 Octave with the configure option --disable-openmp. | |
338 | |
339 ** Octave now automatically truncates intermediate calculations done with | |
340 floating point values to 64 bits. Some hardware math co-processors, such | |
341 as the x87, maintain extra precision, but this leads to disagreements in | |
342 calculations when compared to reference implementations in software using | |
343 the IEEE standard for double precision. There was no measurable | |
344 performance impact to this change, but it may be disabled with the | |
345 configure option --disable-float-truncate. MinGW and Cygwin platforms, | |
346 as well as GCC compilers >= 5.0 require this feature. Non-x87 hardware, | |
347 or hardware using SSE options exclusively, can disable float truncation | |
348 if desired. | |
349 </pre> |