Mercurial > web-octave
comparison NEWS-3.2.html @ 94:e8fc61e077fc
Merged closed branch "kai" into default.
author | Kai T. Ohlhus <k.ohlhus@gmail.com> |
---|---|
date | Tue, 01 Nov 2016 01:06:10 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
92:7609e2a6faef | 94:e8fc61e077fc |
---|---|
1 <pre> | |
2 Summary of important user-visible changes for version 3.2: | |
3 --------------------------------------------------------- | |
4 | |
5 ** Compatibility with Matlab graphics has been improved. | |
6 | |
7 The hggroup object and associated listener callback functions have | |
8 been added allowing the inclusion of group objects. Data sources | |
9 have been added to these group objects such that | |
10 | |
11 x = 0:0.1:10; | |
12 y = sin (x); | |
13 plot (x, y, "ydatasource", "y"); | |
14 for i = 1 : 100 | |
15 pause(0.1) | |
16 y = sin (x + 0.1 * i); | |
17 refreshdata(); | |
18 endfor | |
19 | |
20 works as expected. This capability has be used to introduce | |
21 stem-series, bar-series, etc., objects for better Matlab | |
22 compatibility. | |
23 | |
24 ** New graphics functions: | |
25 | |
26 addlistener ezcontour gcbo refresh | |
27 addproperty ezcontourf ginput refreshdata | |
28 allchild ezmesh gtext specular | |
29 available_backends ezmeshc intwarning surfl | |
30 backend ezplot ishghandle trisurf | |
31 cla ezplot3 isocolors waitforbuttonpress | |
32 clabel ezpolar isonormals | |
33 comet ezsurf isosurface | |
34 dellistener findall linkprop | |
35 diffuse gcbf plotmatrix | |
36 | |
37 ** New experimental OpenGL/FLTK based plotting system. | |
38 | |
39 An experimental plotting system based on OpenGL and the FLTK | |
40 toolkit is now part of Octave. This backend is disabled by | |
41 default. You can switch to using it with the command | |
42 | |
43 backend ("fltk") | |
44 | |
45 for all future figures or for a particular figure with the command | |
46 | |
47 backend (h, "fltk") | |
48 | |
49 where "h" is a valid figure handle. Please note that this backend | |
50 does not yet support text objects. Obviously, this is a necessary | |
51 feature before it can be considered usable. We are looking for | |
52 volunteers to help implement this missing feature. | |
53 | |
54 ** Functions providing direct access to gnuplot have been removed. | |
55 | |
56 The functions __gnuplot_plot__, __gnuplot_set__, __gnuplot_raw__, | |
57 __gnuplot_show__, __gnuplot_replot__, __gnuplot_splot__, | |
58 __gnuplot_save_data__ and __gnuplot_send_inline_data__ have been | |
59 removed from Octave. These function were incompatible with the | |
60 high level graphics handle code. | |
61 | |
62 ** The Control, Finance and Quaternion functions have been removed. | |
63 | |
64 These functions are now available as separate packages from | |
65 | |
66 http://octave.sourceforge.net/packages.html | |
67 | |
68 and can be reinstalled using the Octave package manager (see | |
69 the pkg function). | |
70 | |
71 ** Specific sparse matrix functions removed. | |
72 | |
73 The following functions, which handled only sparse matrices have | |
74 been removed. Instead of calling these functions directly, you | |
75 should use the corresponding function without the "sp" prefix. | |
76 | |
77 spatan2 spcumsum spkron spprod | |
78 spchol spdet splchol spqr | |
79 spchol2inv spdiag splu spsum | |
80 spcholinv spfind spmax spsumsqk | |
81 spcumprod spinv spmin | |
82 | |
83 ** Improvements to the debugger. | |
84 | |
85 The interactive debugging features have been improved. Stopping | |
86 on statements with dbstop should work correctly now. Stepping | |
87 into and over functions, and stepping one statement at a time | |
88 (with dbstep) now works. Moving up and down the call stack with | |
89 dbup and dbdown now works. The dbstack function is now available | |
90 to print the current function call stack. The new dbquit function | |
91 is available to exit the debugging mode. | |
92 | |
93 ** Improved traceback error messages. | |
94 | |
95 Traceback error messages are much more concise and easier to | |
96 understand. They now display information about the function call | |
97 stack instead of the stack of all statements that were active at | |
98 the point of the error. | |
99 | |
100 ** Object Oriented Programming. | |
101 | |
102 Octave now includes OOP features and the user can create their own | |
103 class objects and overloaded functions and operators. For | |
104 example, all methods of a class called "myclass" will be found in | |
105 a directory "@myclass" on the users path. The class specific | |
106 versions of functions and operators take precedence over the | |
107 generic versions of these functions. | |
108 | |
109 New functions related to OOP include | |
110 | |
111 class inferiorto isobject loadobj methods superiorto | |
112 | |
113 See the Octave manual for more details. | |
114 | |
115 ** Parsing of Command-style Functions. | |
116 | |
117 Octave now parses command-style functions without needing to first | |
118 declare them with "mark_as_command". The rules for recognizing a | |
119 command-style function calls are | |
120 | |
121 * A command must appear as the first word in a statement, | |
122 followed by a space. | |
123 | |
124 * The first character after the space must not be '=' or '(' | |
125 | |
126 * The next token after the space must not look like a binary | |
127 operator. | |
128 | |
129 These rules should be mostly compatible with the way Matlab parses | |
130 command-style function calls and allow users to define commands in | |
131 .m files without having to mark them as commands. | |
132 | |
133 Note that previous versions of Octave allowed expressions like | |
134 | |
135 x = load -text foo.dat | |
136 | |
137 but an expression like this will now generate a parse error. In | |
138 order to assign the value returned by a function to a variable, | |
139 you must use the normal function call syntax: | |
140 | |
141 x = load ("-text", "foo.dat"); | |
142 | |
143 ** Block comments. | |
144 | |
145 Commented code can be between matching "#{" and "#}" or "%{" and | |
146 "%}" markers, even if the commented code spans several line. This | |
147 allows blocks code to be commented, without needing to comment | |
148 each line. For example, | |
149 | |
150 function [s, t] = func (x, y) | |
151 s = 2 * x; | |
152 #{ | |
153 s *= y; | |
154 t = y + x; | |
155 #} | |
156 endfunction | |
157 | |
158 the lines "s *= y;" and "t = y + x" will not be executed. | |
159 | |
160 ** Special treatment in the parser of expressions like "a' * b". | |
161 | |
162 In these cases the transpose is no longer explicitly formed and | |
163 BLAS libraries are called with the transpose flagged, | |
164 significantly improving performance for these kinds of | |
165 operations. | |
166 | |
167 ** Single Precision data type. | |
168 | |
169 Octave now includes a single precision data type. Single | |
170 precision variables can be created with the "single" command, or | |
171 from functions like ones, eye, etc. For example, | |
172 | |
173 single (1) | |
174 ones (2, 2, "single") | |
175 zeros (2, 2, "single") | |
176 eye (2, 2, "single") | |
177 Inf (2, 2, "single") | |
178 NaN (2, 2, "single") | |
179 NA (2, 2, "single") | |
180 | |
181 all create single precision variables. For compatibility with | |
182 Matlab, mixed double/single precision operators and functions | |
183 return single precision types. | |
184 | |
185 As a consequence of this addition to Octave the internal | |
186 representation of the double precision NA value has changed, and | |
187 so users that make use of data generated by Octave with R or | |
188 visa-versa are warned that compatibility might not be assured. | |
189 | |
190 ** Improved array indexing. | |
191 | |
192 The underlying code used for indexing of arrays has been | |
193 completely rewritten and indexing is now significantly faster. | |
194 | |
195 ** Improved memory management. | |
196 | |
197 Octave will now attempt to share data in some cases where previously | |
198 a copy would be made, such as certain array slicing operations or | |
199 conversions between cells, structs and cs-lists. This usually reduces | |
200 both time and memory consumption. | |
201 Also, Octave will now attempt to detect and optimize usage of a vector | |
202 as a stack, when elements are being repeatedly inserted at/removed from | |
203 the end of the vector. | |
204 | |
205 ** Improved performance for reduction operations. | |
206 | |
207 The performance of the sum, prod, sumsq, cumsum, cumprod, any, all, | |
208 max and min functions has been significantly improved. | |
209 | |
210 ** Sorting and searching. | |
211 | |
212 The performance of sort has been improved, especially when sorting | |
213 indices are requested. An efficient built-in issorted implementation | |
214 was added. sortrows now uses a more efficient algorithm, especially | |
215 in the homegeneous case. lookup is now a built-in function performing | |
216 a binary search, optimized for long runs of close elements. Lookup | |
217 also works with cell arrays of strings. | |
218 | |
219 ** Range arithmetics | |
220 | |
221 For some operations on ranges, Octave will attempt to keep the result as a | |
222 range. These include negation, adding a scalar, subtracting a scalar, and | |
223 multiplying by a scalar. Ranges with zero increment are allowed and can be | |
224 constructed using the built-in function `ones'. | |
225 | |
226 ** Various performance improvements. | |
227 | |
228 Performance of a number of other built-in operations and functions was | |
229 improved, including: | |
230 | |
231 * logical operations | |
232 * comparison operators | |
233 * element-wise power | |
234 * accumarray | |
235 * cellfun | |
236 * isnan | |
237 * isinf | |
238 * isfinite | |
239 * nchoosek | |
240 * repmat | |
241 * strcmp | |
242 | |
243 ** 64-bit integer arithmetic. | |
244 | |
245 Arithmetic with 64-bit integers (int64 and uint64 types) is fully | |
246 supported, with saturation semantics like the other integer types. | |
247 Performance of most integer arithmetic operations has been | |
248 improved by using integer arithmetic directly. Previously, Octave | |
249 performed integer math with saturation semantics by converting the | |
250 operands to double precision, performing the operation, and then | |
251 converting the result back to an integer value, truncating if | |
252 necessary. | |
253 | |
254 ** Diagonal and permutation matrices. | |
255 | |
256 The interpreter can now treat diagonal and permutation matrices as | |
257 special objects that store only the non-zero elements, rather than | |
258 general full matrices. Therefore, it is now possible to construct | |
259 and use these matrices in linear algebra without suffering a | |
260 performance penalty due to storing large numbers of zero elements. | |
261 | |
262 ** Improvements to fsolve. | |
263 | |
264 The fsolve function now accepts an option structure argument (see | |
265 also the optimset function). The INFO values returned from fsolve | |
266 have changed to be compatible with Matlab's fsolve function. | |
267 Additionally, fsolve is now able to solve overdetermined systems, | |
268 complex-differentiable complex systems, systems with a sparse | |
269 jacobian and can work in single precision if given single precision | |
270 inputs. It can also be called recursively. | |
271 | |
272 ** Improvements to the norm function. | |
273 | |
274 The norm function is now able to compute row or column norms of a | |
275 matrix in a single call, as well as general matrix p-norms. | |
276 | |
277 ** New functions for computing some eigenvalues or singular values. | |
278 | |
279 The eigs and svds functions have been included in Octave. These | |
280 functions require the ARPACK library (now distributed under a | |
281 GPL-compatible license). | |
282 | |
283 ** New QR and Cholesky factorization updating functions. | |
284 | |
285 choldelete cholshift qrdelete qrshift | |
286 cholinsert cholupdate qrinsert qrupdate | |
287 | |
288 ** New quadrature functions. | |
289 | |
290 dblquad quadgk quadv triplequad | |
291 | |
292 ** New functions for reading and writing images. | |
293 | |
294 The imwrite and imread functions have been included in Octave. | |
295 These functions require the GraphicsMagick library. The new | |
296 function imfinfo provides information about an image file (size, | |
297 type, colors, etc.) | |
298 | |
299 ** The input_event_hook function has been replaced by the pair of | |
300 functions add_input_event_hook and remove_input_event_hook so that | |
301 more than one hook function may be installed at a time. | |
302 | |
303 ** Other miscellaneous new functions. | |
304 | |
305 addtodate hypot reallog | |
306 bicgstab idivide realpow | |
307 cellslices info realsqrt | |
308 cgs interp1q rectint | |
309 command_line_path isdebugmode regexptranslate | |
310 contrast isfloat restoredefaultpath | |
311 convn isstrprop roundb | |
312 cummin log1p rundemos | |
313 cummax lsqnonneg runlength | |
314 datetick matlabroot saveobj | |
315 display namelengthmax spaugment | |
316 expm1 nargoutchk strchr | |
317 filemarker pathdef strvcat | |
318 fstat perl subspace | |
319 full prctile symvar | |
320 fzero quantile treelayout | |
321 genvarname re_read_readline_init_file validatestring | |
322 histc | |
323 | |
324 ** Changes to strcat. | |
325 | |
326 The strcat function is now compatible with Matlab's strcat | |
327 function, which removes trailing whitespace when concatenating | |
328 character strings. For example | |
329 | |
330 strcat ('foo ', 'bar') | |
331 ==> 'foobar' | |
332 | |
333 The new function cstrcat provides the previous behavior of | |
334 Octave's strcat. | |
335 | |
336 ** Improvements to the help functions. | |
337 | |
338 The help system has been mostly re-implemented in .m files to make | |
339 it easier to modify. Performance of the lookfor function has been | |
340 greatly improved by caching the help text from all functions that | |
341 are distributed with Octave. The pkg function has been modified | |
342 to generate cache files for external packages when they are | |
343 installed. | |
344 | |
345 ** Deprecated functions. | |
346 | |
347 The following functions were deprecated in Octave 3.0 and will be | |
348 removed in Octave 3.4 (or whatever version is the second major | |
349 release after 3.0): | |
350 | |
351 beta_cdf geometric_pdf pascal_pdf | |
352 beta_inv geometric_rnd pascal_rnd | |
353 beta_pdf hypergeometric_cdf poisson_cdf | |
354 beta_rnd hypergeometric_inv poisson_inv | |
355 binomial_cdf hypergeometric_pdf poisson_pdf | |
356 binomial_inv hypergeometric_rnd poisson_rnd | |
357 binomial_pdf intersection polyinteg | |
358 binomial_rnd is_bool setstr | |
359 chisquare_cdf is_complex struct_contains | |
360 chisquare_inv is_list struct_elements | |
361 chisquare_pdf is_matrix t_cdf | |
362 chisquare_rnd is_scalar t_inv | |
363 clearplot is_square t_pdf | |
364 clg is_stream t_rnd | |
365 com2str is_struct uniform_cdf | |
366 exponential_cdf is_symmetric uniform_inv | |
367 exponential_inv is_vector uniform_pdf | |
368 exponential_pdf isstr uniform_rnd | |
369 exponential_rnd lognormal_cdf weibcdf | |
370 f_cdf lognormal_inv weibinv | |
371 f_inv lognormal_pdf weibpdf | |
372 f_pdf lognormal_rnd weibrnd | |
373 f_rnd meshdom weibull_cdf | |
374 gamma_cdf normal_cdf weibull_inv | |
375 gamma_inv normal_inv weibull_pdf | |
376 gamma_pdf normal_pdf weibull_rnd | |
377 gamma_rnd normal_rnd wiener_rnd | |
378 geometric_cdf pascal_cdf | |
379 geometric_inv pascal_inv | |
380 | |
381 The following functions are now deprecated in Octave 3.2 and will | |
382 be removed in Octave 3.6 (or whatever version is the second major | |
383 release after 3.2): | |
384 | |
385 create_set spcholinv spmax | |
386 dmult spcumprod spmin | |
387 iscommand spcumsum spprod | |
388 israwcommand spdet spqr | |
389 lchol spdiag spsum | |
390 loadimage spfind spsumsq | |
391 mark_as_command spinv str2mat | |
392 mark_as_rawcommand spkron unmark_command | |
393 spatan2 splchol unmark_rawcommand | |
394 spchol split | |
395 spchol2inv splu | |
396 | |
397 See NEWS.3 for old news. | |
398 </pre> |