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