Mercurial > octave-libgccjit
annotate NEWS @ 10117:b9ea485bdfdb
update NEWS
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 15 Jan 2010 12:51:07 +0100 |
parents | a8de53a88e07 |
children | 4de5c28733d5 |
rev | line source |
---|---|
9352 | 1 Summary of important user-visible changes for version 3.3: |
2 --------------------------------------------------------- | |
3 | |
9799
cfd0aa788ae1
remove reference blas and lapack sources
John W. Eaton <jwe@octave.org>
parents:
9745
diff
changeset
|
4 ** BLAS and LAPACK libraries are now required to build Octave. The |
cfd0aa788ae1
remove reference blas and lapack sources
John W. Eaton <jwe@octave.org>
parents:
9745
diff
changeset
|
5 subset of the reference BLAS and LAPACK libraries has been removed |
cfd0aa788ae1
remove reference blas and lapack sources
John W. Eaton <jwe@octave.org>
parents:
9745
diff
changeset
|
6 from the Octave sources. |
cfd0aa788ae1
remove reference blas and lapack sources
John W. Eaton <jwe@octave.org>
parents:
9745
diff
changeset
|
7 |
9352 | 8 ** The `lookup' function was extended to be more useful for general-purpose |
9 binary searching. Using this improvement, the ismember function was | |
9407
0951174cbb03
remove experimental stuff from lookup, simplify
Jaroslav Hajek <highegg@gmail.com>
parents:
9365
diff
changeset
|
10 rewritten for significantly better performance. |
9352 | 11 |
12 ** Real, integer and logical matrices, when used in indexing, will now | |
13 cache the internal index_vector value (zero-based indices) when | |
14 successfully used as indices, eliminating the conversion penalty for | |
15 subsequent indexing by the same matrix. In particular, this means it is | |
16 no longer needed to avoid repeated indexing by logical arrays using | |
17 `find' for performance reasons. | |
18 | |
9888 | 19 ** Logical matrices are now treated more efficiently when used as indices. |
20 Octave will keep the index as a logical mask unless the ratio of true | |
21 elements is small enough, using a specialized code. Previously, all logical | |
22 matrices were always first converted to index vectors. This results in | |
23 savings in both memory and computing time. | |
24 | |
9480 | 25 ** sub2ind and ind2sub were reimplemented as compiled functions for better |
26 performance. These functions are now faster, can deliver more economized | |
27 results for ranges, and can reuse the index cache mechanism described in | |
28 previous paragraph. | |
29 | |
9449 | 30 ** The built-in function equivalents to associative operators (plus, times, |
31 mtimes, and, or) have been extended to accept multiple arguments. This | |
32 is especially useful for summing (multiplying, etc.) lists of objects | |
33 (of possibly distinct types): | |
9408 | 34 |
9449 | 35 matrix_sum = plus (matrix_list{:}); |
36 | |
9880 | 37 ** An FTP object type based on libcurl has been implemented. These objects |
38 allow ftp connections, downloads and uploads to be managed. An example of | |
39 its use might be | |
40 | |
41 fp = ftp ("ftp.octave.org); | |
42 cd (fp, "gnu/octave"); | |
43 mget (fp, "octave-3.2.3.tar.bz2"); | |
44 close (fp); | |
45 | |
9449 | 46 ** The default behavior of assert (observed, expected) has been relaxed |
47 to employ less strict checking that does not require the internals | |
48 of the values to match. This avoids previously valid tests from | |
49 breaking due to new internal classes introduced in future Octave | |
50 versions. | |
51 | |
52 For instance, all of these assertions were true in Octave 3.0.x | |
53 but false in 3.2.x due to new optimizations and improvements: | |
54 | |
55 assert (2*linspace (1, 5, 5), 2*(1:5)) | |
56 assert (zeros (0, 0), []) | |
57 assert (2*ones (1, 5), (2) (ones (1,5))) | |
9462 | 58 |
9873 | 59 ** The behavior of library functions ismatrix, issquare and issymmetric has |
60 been changed for better consistency. | |
61 | |
62 * ismatrix now returns true for all numeric and logical 2d or Nd matrices. | |
63 Previously, ismatrix returned false if the first or second dimension was | |
64 zero. Hence, `ismatrix ([])' was false, while `ismatrix (zeros (1,2,0))' | |
65 was true. | |
66 | |
67 * issquare now returns a logical scalar, and is equivalent to the expression | |
68 `ismatrix (x) && ndims (x) == 2 && rows (x) == columns (x)'. The dimension | |
69 is no longer returned. As a result, `issquare ([])' now yields true. | |
70 | |
71 * issymmetric now checks for symmetry instead of hermitianness. For the latter, | |
72 ishermitian was created. Also, logical scalar is returned rather than the | |
73 dimension, so `issymmetric ([])' is now true. | |
74 | |
75 | |
9462 | 76 ** Function handles are now aware of overloaded functions. If a function |
77 is overloaded, the handle determines at the time of its reference which | |
78 function to call. A non-overloaded version does not need to exist. | |
9408 | 79 |
10109 | 80 ** Overloading functions for built-in classes (double, int8, cell etc) is now |
81 compatible with Matlab. | |
82 | |
10117 | 83 ** Performance of concatenation (using []) and the functions cat, horzcat and |
84 vertcat has been improved for multidimensional arrays. | |
85 | |
9547 | 86 ** The operation-assignment operators +=, -=, *= and /= now behave more |
87 efficiently in certain cases. For instance, if m is a matrix and s | |
88 a scalar, then the statement | |
89 | |
90 m += s; | |
91 | |
92 will operate on m's data in-place if it is not shared by another variable, | |
93 usually increasing both time and memory efficiency. | |
94 | |
9558 | 95 Only selected common combinations are affected, namely: |
9547 | 96 |
97 matrix += matrix | |
98 matrix -= matrix | |
9558 | 99 matrix .*= matrix |
100 matrix ./= matrix | |
101 | |
9547 | 102 matrix += scalar |
103 matrix -= scalar | |
104 matrix *= scalar | |
105 matrix /= scalar | |
9558 | 106 |
9552 | 107 logical matrix |= logical matrix |
108 logical matrix &= logical matrix | |
9547 | 109 |
9888 | 110 where matrix and scalar belong to the same class. The left-hand side must be |
111 a simple variable reference. | |
112 | |
113 Moreover, when unary operators occur in expressions, Octave will also try to do | |
114 the operation in-place if it's argument is a temporary expresssion. | |
9589 | 115 |
116 ** The effect of comparison operators (<,>,<=,>=) when applied to complex numbers | |
117 has changed to be consistent with the strict ordering defined by max, min and sort. | |
118 More specifically, complex numbers are compared by lexicographical comparison of | |
119 the pairs [abs(z), arg(z)]. Previously, only real parts were compared; this can be | |
120 trivially achieved by wrapping the operands in real(). | |
9547 | 121 |
9826 | 122 ** The automatic simplification of complex computation results has changed. Octave will |
123 now simplify any complex number with a zero imaginary part or any complex matrix | |
124 with all elements having zero imaginary part to a real value. Previously, this was done | |
125 only for positive zeros. | |
126 Note that the behavior of the `complex' function is unchanged and it still | |
127 produces a complex value even if the imaginary part is zero. | |
128 | |
9595 | 129 ** As a side effect of code refactoring in liboctave, the binary logical operations |
130 are now more easily amenable to compiler optimizations and are thus significantly | |
131 faster. | |
132 | |
133 ** Octave now allows user-defined subsasgn methods to optimize out redundant copies. | |
134 For more information, see the manual. | |
135 | |
9664 | 136 ** More efficient matrix division handling. Octave is now able to handle the expressions |
137 | |
138 M' \ v | |
139 M.' \ v | |
140 v / M | |
141 | |
142 (M is a matrix and v is a vector) more efficiently in certain cases. | |
143 In particular, if M is triangular, all three expressions will be handled by a single call to | |
144 xTRTRS, with appropriate flags. Previously, all three expressions required a physical transpose | |
145 of M. | |
146 | |
147 ** More efficient handling of certain mixed real-complex matrix operations. | |
148 For instance, if RM is a real matrix and CM a complex matrix, | |
149 | |
150 RM * CM | |
151 | |
152 can now be evaluated either as | |
153 | |
154 complex (RM * real (CM), RM * imag (CM)) | |
155 | |
156 or as | |
157 | |
158 complex (RM) * CM, | |
159 | |
160 depending on the dimensions. The 1st form requires more temporaries and copying, | |
161 but halves the count of FLOPs, which normally brings better performance if | |
162 RM has enough rows. Previously, the 2nd form was always used. | |
163 | |
164 Matrix division is similarly affected. | |
165 | |
9717 | 166 ** More efficient handling of triangular matrix factors returned from factorizations. |
167 The functions for computing QR, LU and Cholesky factorizations will now automatically | |
168 return the triangular matrix factors with proper internal matrix_type set, so that it | |
169 won't need to be computed when the matrix is used for division. | |
170 | |
9722 | 171 ** The built-in "sum" function now handles the non-native summation (i.e. double precision |
172 sum of single or integer inputs) more efficiently, avoiding a temporary conversion of | |
173 the whole input array to doubles. Further, "sum" can now accept an "extra" option argument, | |
174 using a compensated summation algorithm rather than a straightforward sum, which significantly | |
175 improves precision if lots of cancellation occurs in the summation. | |
9717 | 176 |
9745 | 177 ** The built-in "bsxfun" function now uses optimized code for certain cases where built-in |
178 operator handles are passed in. Namely, the optimizations concern the operators | |
9830 | 179 plus, minus, times, ldivide, rdivide, power, and, or (for logical arrays), the relational |
9745 | 180 operators eq, ne, lt, le, gt, ge, and the functions min and max. |
9830 | 181 Optimizations only apply when both operands are of the same built-in class. Mixed real/complex |
182 and single/double operations will first convert both operands to a common type. | |
9745 | 183 |
10054 | 184 ** "strfind" and "strrep" now have compiled implementations, facilitating significantly |
185 more efficient searching and replacing in strings, especially with longer patterns. | |
186 The code of "strcat" has been vectorized and is now much more efficient | |
10109 | 187 when lots of strings are concatenated. "strcmpi" and "strncmpi" are now built-in functions, |
188 providing better performance. | |
10054 | 189 |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
190 Summary of important user-visible changes for version 3.2: |
5913 | 191 --------------------------------------------------------- |
2452 | 192 |
8737 | 193 ** Compatibility with Matlab graphics has been improved. |
6329 | 194 |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
195 The hggroup object and associated listener callback functions have |
8737 | 196 been added allowing the inclusion of group objects. Data sources |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
197 have been added to these group objects such that |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
198 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
199 x = 0:0.1:10; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
200 y = sin (x); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
201 plot (x, y, "ydatasource", "y"); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
202 for i = 1 : 100 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
203 pause(0.1) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
204 y = sin (x + 0.1 * i); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
205 refreshdata(); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
206 endfor |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
207 |
8737 | 208 works as expected. This capability has be used to introduce |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8932
diff
changeset
|
209 stem-series, bar-series, etc., objects for better Matlab |
8737 | 210 compatibility. |
211 | |
212 ** New graphics functions: | |
213 | |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
214 addlistener ezcontour gcbo refresh |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
215 addproperty ezcontourf ginput refreshdata |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
216 allchild ezmesh gtext specular |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
217 available_backends ezmeshc intwarning surfl |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
218 backend ezplot ishghandle trisurf |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
219 cla ezplot3 isocolors waitforbuttonpress |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
220 clabel ezpolar isonormals |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
221 comet ezsurf isosurface |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
222 dellistener findall linkprop |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
9042
diff
changeset
|
223 diffuse gcbf plotmatrix |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
224 |
8737 | 225 ** New experimental OpenGL/FLTK based plotting system. |
226 | |
227 An experimental plotting system based on OpenGL and the FLTK | |
228 toolkit is now part of Octave. This backend is disabled by | |
229 default. You can switch to using it with the command | |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
230 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
231 backend ("fltk") |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
232 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
233 for all future figures or for a particular figure with the command |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
234 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
235 backend (h, "fltk") |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
236 |
8737 | 237 where "h" is a valid figure handle. Please note that this backend |
238 does not yet support text objects. Obviously, this is a necessary | |
239 feature before it can be considered usable. We are looking for | |
240 volunteers to help implement this missing feature. | |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
241 |
8737 | 242 ** Functions providing direct access to gnuplot have been removed. |
243 | |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
244 The functions __gnuplot_plot__, __gnuplot_set__, __gnuplot_raw__, |
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
245 __gnuplot_show__, __gnuplot_replot__, __gnuplot_splot__, |
8737 | 246 __gnuplot_save_data__ and __gnuplot_send_inline_data__ have been |
247 removed from Octave. These function were incompatible with the | |
248 high level graphics handle code. | |
6329 | 249 |
8885 | 250 ** The Control, Finance and Quaternion functions have been removed. |
251 | |
252 These functions are now available as separate packages from | |
253 | |
254 http://octave.sourceforge.net/packages.html | |
255 | |
256 and can be reinstalled using the Octave package manager (see | |
257 the pkg function). | |
258 | |
259 ** Specific sparse matrix functions removed. | |
260 | |
261 The following functions, which handled only sparse matrices have | |
262 been removed. Instead of calling these functions directly, you | |
263 should use the corresponding function without the "sp" prefix. | |
8737 | 264 |
8885 | 265 spatan2 spcumsum spkron spprod |
266 spchol spdet splchol spqr | |
267 spchol2inv spdiag splu spsum | |
268 spcholinv spfind spmax spsumsqk | |
269 spcumprod spinv spmin | |
270 | |
271 ** Improvements to the debugger. | |
272 | |
273 The interactive debugging features have been improved. Stopping | |
274 on statements with dbstop should work correctly now. Stepping | |
275 into and over functions, and stepping one statement at a time | |
276 (with dbstep) now works. Moving up and down the call stack with | |
277 dbup and dbdown now works. The dbstack function is now available | |
278 to print the current function call stack. The new dbquit function | |
279 is available to exit the debugging mode. | |
280 | |
281 ** Improved traceback error messages. | |
282 | |
283 Traceback error messages are much more concise and easier to | |
284 understand. They now display information about the function call | |
285 stack instead of the stack of all statements that were active at | |
286 the point of the error. | |
8014
44d206ae68c9
improve fsolve compatibility
John W. Eaton <jwe@octave.org>
parents:
7990
diff
changeset
|
287 |
8737 | 288 ** Object Oriented Programming. |
8405
d79dfbff2f9d
document new norm features in NEWS
Jaroslav Hajek <highegg@gmail.com>
parents:
8396
diff
changeset
|
289 |
8737 | 290 Octave now includes OOP features and the user can create their own |
291 class objects and overloaded functions and operators. For | |
292 example, all methods of a class called "myclass" will be found in | |
293 a directory "@myclass" on the users path. The class specific | |
294 versions of functions and operators take precedence over the | |
295 generic versions of these functions. | |
296 | |
297 New functions related to OOP include | |
7189 | 298 |
8737 | 299 class inferiorto isobject loadobj methods superiorto |
300 | |
301 See the Octave manual for more details. | |
7038 | 302 |
8747 | 303 ** Parsing of Command-style Functions. |
304 | |
305 Octave now parses command-style functions without needing to first | |
306 declare them with "mark_as_command". The rules for recognizing a | |
307 command-style function calls are | |
308 | |
309 * A command must appear as the first word in a statement, | |
310 followed by a space. | |
311 | |
312 * The first character after the space must not be '=' or '(' | |
313 | |
314 * The next token after the space must not look like a binary | |
315 operator. | |
316 | |
317 These rules should be mostly compatible with the way Matlab parses | |
318 command-style function calls and allow users to define commands in | |
319 .m files without having to mark them as commands. | |
320 | |
321 Note that previous versions of Octave allowed expressions like | |
322 | |
323 x = load -text foo.dat | |
324 | |
325 but an expression like this will now generate a parse error. In | |
326 order to assign the value returned by a function to a variable, | |
327 you must use the normal function call syntax: | |
328 | |
329 x = load ("-text", "foo.dat"); | |
330 | |
8737 | 331 ** Block comments. |
332 | |
8747 | 333 Commented code can be between matching "#{" and "#}" or "%{" and |
334 "%}" markers, even if the commented code spans several line. This | |
335 allows blocks code to be commented, without needing to comment | |
336 each line. For example, | |
5814 | 337 |
8747 | 338 function [s, t] = func (x, y) |
339 s = 2 * x; | |
340 #{ | |
341 s *= y; | |
342 t = y + x; | |
343 #} | |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
344 endfunction |
5814 | 345 |
8747 | 346 the lines "s *= y;" and "t = y + x" will not be executed. |
8737 | 347 |
348 ** Special treatment in the parser of expressions like "a' * b". | |
2452 | 349 |
8737 | 350 In these cases the transpose is no longer explicitly formed and |
351 BLAS libraries are called with the transpose flagged, | |
352 significantly improving performance for these kinds of | |
353 operations. | |
8417
654bcfb937bf
Add the eigs and svds functions
David Bateman <dbateman@free.fr>
parents:
8405
diff
changeset
|
354 |
8737 | 355 ** Single Precision data type. |
2452 | 356 |
8737 | 357 Octave now includes a single precision data type. Single |
358 precision variables can be created with the "single" command, or | |
9034
52515efc50c0
Documentation cleanup on NEWS file
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
359 from functions like ones, eye, etc. For example, |
5995 | 360 |
8737 | 361 single (1) |
362 ones (2, 2, "single") | |
363 zeros (2, 2, "single") | |
364 eye (2, 2, "single") | |
365 Inf (2, 2, "single") | |
366 NaN (2, 2, "single") | |
367 NA (2, 2, "single") | |
7279 | 368 |
8737 | 369 all create single precision variables. For compatibility with |
370 Matlab, mixed double/single precision operators and functions | |
371 return single precision types. | |
372 | |
373 As a consequence of this addition to Octave the internal | |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
374 representation of the double precision NA value has changed, and |
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
375 so users that make use of data generated by Octave with R or |
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
376 visa-versa are warned that compatibility might not be assured. |
7279 | 377 |
8737 | 378 ** Improved array indexing. |
379 | |
380 The underlying code used for indexing of arrays has been | |
9034
52515efc50c0
Documentation cleanup on NEWS file
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
381 completely rewritten and indexing is now significantly faster. |
8737 | 382 |
8755 | 383 ** Improved memory management. |
384 | |
385 Octave will now attempt to share data in some cases where previously | |
386 a copy would be made, such as certain array slicing operations or | |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8932
diff
changeset
|
387 conversions between cells, structs and cs-lists. This usually reduces |
8755 | 388 both time and memory consumption. |
9128 | 389 Also, Octave will now attempt to detect and optimize usage of a vector |
390 as a stack, when elements are being repeatedly inserted at/removed from | |
391 the end of the vector. | |
8755 | 392 |
8738 | 393 ** Improved performance for reduction operations. |
394 | |
8755 | 395 The performance of the sum, prod, sumsq, cumsum, cumprod, any, all, |
396 max and min functions has been significantly improved. | |
8738 | 397 |
9006 | 398 ** Sorting and searching. |
399 | |
400 The performance of sort has been improved, especially when sorting | |
401 indices are requested. An efficient built-in issorted implementation | |
402 was added. sortrows now uses a more efficient algorithm, especially | |
403 in the homegeneous case. lookup is now a built-in function performing | |
404 a binary search, optimized for long runs of close elements. Lookup | |
405 also works with cell arrays of strings. | |
406 | |
407 ** Range arithmetics | |
408 | |
409 For some operations on ranges, Octave will attempt to keep the result as a | |
410 range. These include negation, adding a scalar, subtracting a scalar, and | |
411 multiplying by a scalar. Ranges with zero increment are allowed and can be | |
412 constructed using the built-in function `ones'. | |
413 | |
414 ** Various performance improvements. | |
415 | |
416 Performance of a number of other built-in operations and functions was | |
417 improved, including: | |
418 | |
419 * logical operations | |
420 * comparison operators | |
421 * element-wise power | |
422 * accumarray | |
423 * cellfun | |
424 * isnan | |
425 * isinf | |
426 * isfinite | |
427 * nchoosek | |
428 * repmat | |
429 * strcmp | |
430 | |
8737 | 431 ** 64-bit integer arithmetic. |
432 | |
433 Arithmetic with 64-bit integers (int64 and uint64 types) is fully | |
434 supported, with saturation semantics like the other integer types. | |
435 Performance of most integer arithmetic operations has been | |
436 improved by using integer arithmetic directly. Previously, Octave | |
437 performed integer math with saturation semantics by converting the | |
438 operands to double precision, performing the operation, and then | |
439 converting the result back to an integer value, truncating if | |
440 necessary. | |
441 | |
8885 | 442 ** Diagonal and permutation matrices. |
443 | |
444 The interpreter can now treat diagonal and permutation matrices as | |
445 special objects that store only the non-zero elements, rather than | |
446 general full matrices. Therefore, it is now possible to construct | |
447 and use these matrices in linear algebra without suffering a | |
448 performance penalty due to storing large numbers of zero elements. | |
449 | |
450 ** Improvements to fsolve. | |
451 | |
452 The fsolve function now accepts an option structure argument (see | |
453 also the optimset function). The INFO values returned from fsolve | |
454 have changed to be compatible with Matlab's fsolve function. | |
455 Additionally, fsolve is now able to solve overdetermined systems, | |
456 complex-differentiable complex systems, systems with a sparse | |
457 jacobian and can work in single precision if given single precision | |
9031
1052a66078cf
Documentation cleanup of top-level Octave directory (READMEs, INSTALL)
Rik <rdrider0-list@yahoo.com>
parents:
8932
diff
changeset
|
458 inputs. It can also be called recursively. |
8885 | 459 |
8737 | 460 ** Improvements to the norm function. |
461 | |
462 The norm function is now able to compute row or column norms of a | |
463 matrix in a single call, as well as general matrix p-norms. | |
464 | |
465 ** New functions for computing some eigenvalues or singular values. | |
466 | |
467 The eigs and svds functions have been included in Octave. These | |
468 functions require the ARPACK library (now distributed under a | |
469 GPL-compatible license). | |
470 | |
471 ** New QR and Cholesky factorization updating functions. | |
8370
34960ba08a81
document more new features in the NEWS file
Jaroslav Hajek <highegg@gmail.com>
parents:
8292
diff
changeset
|
472 |
8737 | 473 choldelete cholshift qrdelete qrshift |
474 cholinsert cholupdate qrinsert qrupdate | |
475 | |
476 ** New quadrature functions. | |
477 | |
478 dblquad quadgk quadv triplequad | |
479 | |
8885 | 480 ** New functions for reading and writing images. |
481 | |
482 The imwrite and imread functions have been included in Octave. | |
483 These functions require the GraphicsMagick library. The new | |
484 function imfinfo provides information about an image file (size, | |
485 type, colors, etc.) | |
486 | |
9215
1500d0197484
allow multiple input event hook functions to be installed simultaneously
John W. Eaton <jwe@octave.org>
parents:
9128
diff
changeset
|
487 ** The input_event_hook function has been replaced by the pair of |
1500d0197484
allow multiple input event hook functions to be installed simultaneously
John W. Eaton <jwe@octave.org>
parents:
9128
diff
changeset
|
488 functions add_input_event_hook and remove_input_event_hook so that |
1500d0197484
allow multiple input event hook functions to be installed simultaneously
John W. Eaton <jwe@octave.org>
parents:
9128
diff
changeset
|
489 more than one hook function may be installed at a time. |
1500d0197484
allow multiple input event hook functions to be installed simultaneously
John W. Eaton <jwe@octave.org>
parents:
9128
diff
changeset
|
490 |
8737 | 491 ** Other miscellaneous new functions. |
8370
34960ba08a81
document more new features in the NEWS file
Jaroslav Hajek <highegg@gmail.com>
parents:
8292
diff
changeset
|
492 |
8932
2d0f8692a82e
Add the 'histc' function
Soren Hauberg <hauberg@gmail.com>
parents:
8888
diff
changeset
|
493 addtodate hypot reallog |
2d0f8692a82e
Add the 'histc' function
Soren Hauberg <hauberg@gmail.com>
parents:
8888
diff
changeset
|
494 bicgstab idivide realpow |
9006 | 495 cellslices info realsqrt |
496 cgs interp1q rectint | |
497 command_line_path isdebugmode regexptranslate | |
498 contrast isfloat restoredefaultpath | |
499 convn isstrprop roundb | |
500 cummin log1p rundemos | |
501 cummax lsqnonneg runlength | |
502 datetick matlabroot saveobj | |
503 display namelengthmax spaugment | |
504 expm1 nargoutchk strchr | |
505 filemarker pathdef strvcat | |
506 fstat perl subspace | |
507 full prctile symvar | |
508 fzero quantile treelayout | |
509 genvarname re_read_readline_init_file validatestring | |
510 histc | |
8370
34960ba08a81
document more new features in the NEWS file
Jaroslav Hajek <highegg@gmail.com>
parents:
8292
diff
changeset
|
511 |
8885 | 512 ** Changes to strcat. |
513 | |
514 The strcat function is now compatible with Matlab's strcat | |
515 function, which removes trailing whitespace when concatenating | |
516 character strings. For example | |
517 | |
518 strcat ('foo ', 'bar') | |
519 ==> 'foobar' | |
520 | |
521 The new function cstrcat provides the previous behavior of | |
522 Octave's strcat. | |
523 | |
524 ** Improvements to the help functions. | |
525 | |
9034
52515efc50c0
Documentation cleanup on NEWS file
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
526 The help system has been mostly re-implemented in .m files to make |
8885 | 527 it easier to modify. Performance of the lookfor function has been |
528 greatly improved by caching the help text from all functions that | |
529 are distributed with Octave. The pkg function has been modified | |
530 to generate cache files for external packages when they are | |
531 installed. | |
532 | |
8888
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
533 ** Deprecated functions. |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
534 |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
535 The following functions were deprecated in Octave 3.0 and will be |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
536 removed in Octave 3.4 (or whatever version is the second major |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
537 release after 3.0): |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
538 |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
539 beta_cdf geometric_pdf pascal_pdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
540 beta_inv geometric_rnd pascal_rnd |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
541 beta_pdf hypergeometric_cdf poisson_cdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
542 beta_rnd hypergeometric_inv poisson_inv |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
543 binomial_cdf hypergeometric_pdf poisson_pdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
544 binomial_inv hypergeometric_rnd poisson_rnd |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
545 binomial_pdf intersection polyinteg |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
546 binomial_rnd is_bool setstr |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
547 chisquare_cdf is_complex struct_contains |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
548 chisquare_inv is_list struct_elements |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
549 chisquare_pdf is_matrix t_cdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
550 chisquare_rnd is_scalar t_inv |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
551 clearplot is_square t_pdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
552 clg is_stream t_rnd |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
553 com2str is_struct uniform_cdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
554 exponential_cdf is_symmetric uniform_inv |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
555 exponential_inv is_vector uniform_pdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
556 exponential_pdf isstr uniform_rnd |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
557 exponential_rnd lognormal_cdf weibcdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
558 f_cdf lognormal_inv weibinv |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
559 f_inv lognormal_pdf weibpdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
560 f_pdf lognormal_rnd weibrnd |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
561 f_rnd meshdom weibull_cdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
562 gamma_cdf normal_cdf weibull_inv |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
563 gamma_inv normal_inv weibull_pdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
564 gamma_pdf normal_pdf weibull_rnd |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
565 gamma_rnd normal_rnd wiener_rnd |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
566 geometric_cdf pascal_cdf |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
567 geometric_inv pascal_inv |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
568 |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
569 The following functions are now deprecated in Octave 3.2 and will |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
570 be removed in Octave 3.6 (or whatever version is the second major |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
571 release after 3.2): |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
572 |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
573 create_set spcholinv spmax |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
574 dmult spcumprod spmin |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
575 iscommand spcumsum spprod |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
576 israwcommand spdet spqr |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
577 lchol spdiag spsum |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
578 loadimage spfind spsumsq |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
579 mark_as_command spinv str2mat |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
580 mark_as_rawcommand spkron unmark_command |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
581 spatan2 splchol unmark_rawcommand |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
582 spchol split |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
583 spchol2inv splu |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
584 |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
585 See NEWS.3 for old news. |