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>