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