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