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>