Mercurial > hg > octave-nkf
annotate NEWS @ 10733:f72a761a784c
eliminate code duplication in reset_default_properties methods
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 25 Jun 2010 07:22:45 -0400 |
parents | a52cc4f6ebfc |
children | cfb13443434f |
rev | line source |
---|---|
9352 | 1 Summary of important user-visible changes for version 3.3: |
2 --------------------------------------------------------- | |
3 | |
10522
6538ff562949
document keypress and mouse callback properties
Shai Ayal <shaiay@users.sourceforge.net>
parents:
10453
diff
changeset
|
4 ** The fltk graphics backend now implements the following callback |
6538ff562949
document keypress and mouse callback properties
Shai Ayal <shaiay@users.sourceforge.net>
parents:
10453
diff
changeset
|
5 properties: keypressfcn, keyreleasefcn, windowbuttondownfcn, |
6538ff562949
document keypress and mouse callback properties
Shai Ayal <shaiay@users.sourceforge.net>
parents:
10453
diff
changeset
|
6 windowbuttonmotionfcn, windowbuttonupfcn, and currentpoint. These |
6538ff562949
document keypress and mouse callback properties
Shai Ayal <shaiay@users.sourceforge.net>
parents:
10453
diff
changeset
|
7 enable keyboard and mouse interaction, an example of which can be |
6538ff562949
document keypress and mouse callback properties
Shai Ayal <shaiay@users.sourceforge.net>
parents:
10453
diff
changeset
|
8 seen in the __fltk_ginput__.m script. |
6538ff562949
document keypress and mouse callback properties
Shai Ayal <shaiay@users.sourceforge.net>
parents:
10453
diff
changeset
|
9 |
9799
cfd0aa788ae1
remove reference blas and lapack sources
John W. Eaton <jwe@octave.org>
parents:
9745
diff
changeset
|
10 ** 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
|
11 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
|
12 from the Octave sources. |
cfd0aa788ae1
remove reference blas and lapack sources
John W. Eaton <jwe@octave.org>
parents:
9745
diff
changeset
|
13 |
10118 | 14 ** The `lookup' function was extended to be more useful for |
15 general-purpose binary searching. Using this improvement, the | |
16 ismember function was rewritten for significantly better | |
17 performance. | |
9352 | 18 |
19 ** Real, integer and logical matrices, when used in indexing, will now | |
20 cache the internal index_vector value (zero-based indices) when | |
21 successfully used as indices, eliminating the conversion penalty for | |
10118 | 22 subsequent indexing by the same matrix. In particular, this means it |
23 is no longer needed to avoid repeated indexing by logical arrays | |
24 using find for performance reasons. | |
9888 | 25 |
10118 | 26 ** Logical matrices are now treated more efficiently when used as |
27 indices. Octave will keep the index as a logical mask unless the | |
28 ratio of true elements is small enough, using a specialized | |
29 code. Previously, all logical matrices were always first converted | |
30 to index vectors. This results in savings in both memory and | |
31 computing time. | |
9480 | 32 |
10118 | 33 ** The `sub2ind' and `ind2sub' functions were reimplemented as compiled |
34 functions for better performance. These functions are now faster, | |
35 can deliver more economized results for ranges, and can reuse the | |
36 index cache mechanism described in previous paragraph. | |
37 | |
38 ** The built-in function equivalents to associative operators (`plus', | |
39 `times', `mtimes', `and', and `or') have been extended to accept | |
40 multiple arguments. This is especially useful for summing | |
41 (multiplying, etc.) lists of objects (of possibly distinct types): | |
9408 | 42 |
9449 | 43 matrix_sum = plus (matrix_list{:}); |
44 | |
10118 | 45 ** An FTP object type based on libcurl has been implemented. These |
46 objects allow ftp connections, downloads and uploads to be | |
47 managed. For example, | |
9880 | 48 |
10118 | 49 fp = ftp ("ftp.octave.org); |
50 cd (fp, "gnu/octave"); | |
51 mget (fp, "octave-3.2.3.tar.bz2"); | |
52 close (fp); | |
9880 | 53 |
10118 | 54 ** The default behavior of `assert (observed, expected)' has been |
55 relaxed to employ less strict checking that does not require the | |
56 internals of the values to match. This avoids previously valid | |
57 tests from breaking due to new internal classes introduced in future | |
58 Octave versions. | |
9449 | 59 |
60 For instance, all of these assertions were true in Octave 3.0.x | |
61 but false in 3.2.x due to new optimizations and improvements: | |
62 | |
63 assert (2*linspace (1, 5, 5), 2*(1:5)) | |
64 assert (zeros (0, 0), []) | |
65 assert (2*ones (1, 5), (2) (ones (1,5))) | |
9462 | 66 |
10118 | 67 ** The behavior of library functions `ismatrix', `issquare', and |
68 `issymmetric' has been changed for better consistency. | |
9873 | 69 |
10292 | 70 * The `ismatrix' function now returns true for all numeric, |
71 logical and character 2d or Nd matrices. Previously, `ismatrix' | |
72 returned false if the first or second dimension was zero. | |
73 Hence, `ismatrix ([])' was false, | |
74 while `ismatrix (zeros (1,2,0))' was true. | |
9873 | 75 |
10118 | 76 * The `issquare' function now returns a logical scalar, and is |
77 equivalent to the expression | |
78 | |
79 ismatrix (x) && ndims (x) == 2 && rows (x) == columns (x) | |
80 | |
81 The dimension is no longer returned. As a result, `issquare ([])' | |
82 now yields true. | |
9873 | 83 |
10118 | 84 * The `issymmetric' function now checks for symmetry instead of |
85 hermitianness. For the latter, ishermitian was created. Also, | |
86 logical scalar is returned rather than the dimension, so | |
87 `issymmetric ([])' is now true. | |
9873 | 88 |
10118 | 89 ** Function handles are now aware of overloaded functions. If a |
90 function is overloaded, the handle determines at the time of its | |
91 reference which function to call. A non-overloaded version does not | |
92 need to exist. | |
9873 | 93 |
10118 | 94 ** Overloading functions for built-in classes (double, int8, cell, |
95 etc.) is now compatible with Matlab. | |
9408 | 96 |
10323 | 97 ** Function handles can now be compared with the == and != operators, |
98 as well as the `isequal' function. | |
99 | |
10118 | 100 ** Performance of concatenation (using []) and the functions `cat', |
101 `horzcat', and `vertcat' has been improved for multidimensional | |
102 arrays. | |
10117 | 103 |
9547 | 104 ** The operation-assignment operators +=, -=, *= and /= now behave more |
10118 | 105 efficiently in certain cases. For instance, if M is a matrix and S a |
106 scalar, then the statement | |
9547 | 107 |
10118 | 108 M += S; |
9547 | 109 |
10118 | 110 will operate on M's data in-place if it is not shared by another |
111 variable, usually increasing both time and memory efficiency. | |
9547 | 112 |
9558 | 113 Only selected common combinations are affected, namely: |
9547 | 114 |
115 matrix += matrix | |
116 matrix -= matrix | |
9558 | 117 matrix .*= matrix |
118 matrix ./= matrix | |
119 | |
9547 | 120 matrix += scalar |
121 matrix -= scalar | |
122 matrix *= scalar | |
123 matrix /= scalar | |
9558 | 124 |
9552 | 125 logical matrix |= logical matrix |
126 logical matrix &= logical matrix | |
9547 | 127 |
10118 | 128 where matrix and scalar belong to the same class. The left-hand |
129 side must be a simple variable reference. | |
9888 | 130 |
10118 | 131 Moreover, when unary operators occur in expressions, Octave will |
132 also try to do the operation in-place if it's argument is a | |
133 temporary expresssion. | |
9589 | 134 |
10118 | 135 ** The effect of comparison operators (<, >, <=, and >=) applied to |
136 complex numbers has changed to be consistent with the strict | |
137 ordering defined by the `max', `min', and `sort' functions. More | |
138 specifically, complex numbers are compared by lexicographical | |
139 comparison of the pairs `[abs(z), arg(z)]'. Previously, only real | |
140 parts were compared; this can be trivially achieved by wrapping the | |
141 operands in real(). | |
9547 | 142 |
10118 | 143 ** The automatic simplification of complex computation results has |
144 changed. Octave will now simplify any complex number with a zero | |
145 imaginary part or any complex matrix with all elements having zero | |
146 imaginary part to a real value. Previously, this was done only for | |
147 positive zeros. Note that the behavior of the complex function is | |
148 unchanged and it still produces a complex value even if the | |
149 imaginary part is zero. | |
9826 | 150 |
10118 | 151 ** As a side effect of code refactoring in liboctave, the binary |
152 logical operations are now more easily amenable to compiler | |
153 optimizations and are thus significantly faster. | |
9595 | 154 |
10118 | 155 ** Octave now allows user-defined `subsasgn' methods to optimize out |
156 redundant copies. For more information, see the manual. | |
9595 | 157 |
10453 | 158 ** More efficient matrix division handling. Octave is now able to |
10118 | 159 handle the expressions |
9664 | 160 |
10118 | 161 M' \ V |
162 M.' \ V | |
163 V / M | |
9664 | 164 |
10118 | 165 (M is a matrix and V is a vector) more efficiently in certain cases. |
166 In particular, if M is triangular, all three expressions will be | |
167 handled by a single call to xTRTRS (from LAPACK), with appropriate | |
10453 | 168 flags. Previously, all three expressions required a physical |
10118 | 169 transpose of M. |
9664 | 170 |
10118 | 171 ** More efficient handling of certain mixed real-complex matrix |
172 operations. For instance, if RM is a real matrix and CM a complex | |
173 matrix, | |
9664 | 174 |
10118 | 175 RM * CM |
9664 | 176 |
177 can now be evaluated either as | |
178 | |
179 complex (RM * real (CM), RM * imag (CM)) | |
180 | |
181 or as | |
182 | |
183 complex (RM) * CM, | |
184 | |
10453 | 185 depending on the dimensions. The first form requires more |
186 temporaries and copying, but halves the FLOP count, which normally | |
187 brings better performance if RM has enough rows. Previously, the | |
188 second form was always used. | |
9664 | 189 |
190 Matrix division is similarly affected. | |
191 | |
10118 | 192 ** More efficient handling of triangular matrix factors returned from |
193 factorizations. The functions for computing QR, LU and Cholesky | |
194 factorizations will now automatically return the triangular matrix | |
195 factors with proper internal matrix_type set, so that it won't need | |
196 to be computed when the matrix is used for division. | |
9717 | 197 |
10118 | 198 ** The built-in `sum' function now handles the non-native summation |
199 (i.e., double precision sum of single or integer inputs) more | |
200 efficiently, avoiding a temporary conversion of the whole input | |
201 array to doubles. Further, `sum' can now accept an extra option | |
202 argument, using a compensated summation algorithm rather than a | |
203 straightforward sum, which significantly improves precision if lots | |
204 of cancellation occurs in the summation. | |
9717 | 205 |
10118 | 206 ** The built-in `bsxfun' function now uses optimized code for certain |
207 cases where built-in operator handles are passed in. Namely, the | |
208 optimizations concern the operators `plus', `minus', `times', | |
209 `ldivide', `rdivide', `power', `and', `or' (for logical arrays), | |
210 the relational operators `eq', `ne', `lt', `le', `gt', `ge', and the | |
211 functions `min' and `max'. Optimizations only apply when both | |
212 operands are of the same built-in class. Mixed real/complex and | |
213 single/double operations will first convert both operands to a | |
214 common type. | |
9745 | 215 |
10118 | 216 ** The `strfind' and `strrep' functions now have compiled |
217 implementations, facilitating significantly more efficient searching | |
218 and replacing in strings, especially with longer patterns. The code | |
219 of `strcat' has been vectorized and is now much more efficient when | |
220 many strings are concatenated. The `strcmpi' and `strncmpi' | |
221 functions are now built-in functions, providing better performance. | |
10208 | 222 |
10453 | 223 ** Matlab-style ignoring input and output function arguments using |
224 tilde (~) is now supported. For more details, consult the manual. | |
10233 | 225 |
10453 | 226 ** The list datatype, deprecated since the introduction of cells, has |
227 been removed. | |
10276 | 228 |
10453 | 229 ** The accumarray function has been optimized and is now significantly |
230 faster in certain important cases. | |
10054 | 231 |
10292 | 232 ** The behavior of isreal and isnumeric functions was changed to be more |
233 Matlab-compatible. | |
234 | |
10406 | 235 ** The integer math & conversion warnings (Octave:int-convert-nan, |
236 Octave:int-convert-non-int-val, Octave:int-convert-overflow, | |
237 Octave:int-math-overflow) have been removed. | |
238 | |
10453 | 239 ** rem and mod are now built-in functions. They also handle integer |
240 types efficiently using integer arithmetic. | |
10437 | 241 |
10536 | 242 ** Sparse indexing and indexed assignment has been mostly rewritten. |
243 Since Octave uses compressed column storage for sparse matrices, | |
244 major attention is devoted to operations manipulating whole columns. | |
245 Such operations are now significantly faster, as well as some other | |
246 important cases. | |
247 | |
248 Further, it is now possible to pre-allocate a sparse matrix and | |
249 subsequently fill it by assignments, provided they meet certain | |
250 conditions. For more information, consult the `spalloc' function, | |
251 which is no longer a mere dummy. Consequently, nzmax and nnz are no | |
252 longer always equal in Octave. Octave may also produce a matrix with | |
253 nnz < nzmax as a result of other operations, so you should | |
254 consistently use nnz unless you really want to use nzmax | |
255 (i.e. the space allocated for nonzero elements). | |
256 | |
257 Sparse concatenation is also affected, and concatenating sparse | |
258 matrices, especially larger collections, is now significantly more | |
259 efficient. This applies to both the [] operator and the | |
260 cat/vertcat/horzcat functions. | |
261 | |
10639 | 262 ** It is now possible to optionally employ the xGESDD LAPACK drivers for |
263 computing the singular value decomposition using svd(), instead of | |
264 the default xGESVD, using the configuration pseudo-variable | |
265 svd_driver. The xGESDD driver can be up to 6x times faster when | |
266 singular vectors are requested, but is reported to be somewhat less | |
267 robust on highly ill-conditioned matrices. | |
268 | |
269 ** Configuration pseudo-variables, such as page_screen_output or | |
270 confirm_recursive_rmdir (or the above mentioned svd_driver), now | |
271 accept a "local" option as second argument, requesting the change | |
272 to be undone when current function returns: | |
273 | |
274 function [status, msg] = rm_rf (dir) | |
275 confirm_recursive_rmdir (false, "local"); | |
276 [status, msg] = rmdir (dir, "s"); | |
277 ... | |
278 endfunction | |
279 | |
280 Upon return, confirm_recursive_rmdir will be restored to the value | |
281 it had on entry to the function, even if there were subsequent | |
282 changes to the variable in function rm_rf or any of the functions | |
283 it calls. | |
284 | |
285 | |
286 | |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
287 Summary of important user-visible changes for version 3.2: |
5913 | 288 --------------------------------------------------------- |
2452 | 289 |
8737 | 290 ** Compatibility with Matlab graphics has been improved. |
6329 | 291 |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
292 The hggroup object and associated listener callback functions have |
8737 | 293 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
|
294 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
|
295 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
296 x = 0:0.1:10; |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
297 y = sin (x); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
298 plot (x, y, "ydatasource", "y"); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
299 for i = 1 : 100 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
300 pause(0.1) |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
301 y = sin (x + 0.1 * i); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
302 refreshdata(); |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
303 endfor |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
304 |
8737 | 305 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
|
306 stem-series, bar-series, etc., objects for better Matlab |
8737 | 307 compatibility. |
308 | |
309 ** New graphics functions: | |
310 | |
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
|
311 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
|
312 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
|
313 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
|
314 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
|
315 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
|
316 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
|
317 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
|
318 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
|
319 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
|
320 diffuse gcbf plotmatrix |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
321 |
8737 | 322 ** New experimental OpenGL/FLTK based plotting system. |
323 | |
324 An experimental plotting system based on OpenGL and the FLTK | |
325 toolkit is now part of Octave. This backend is disabled by | |
326 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
|
327 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
328 backend ("fltk") |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
329 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
330 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
|
331 |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
332 backend (h, "fltk") |
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
333 |
8737 | 334 where "h" is a valid figure handle. Please note that this backend |
335 does not yet support text objects. Obviously, this is a necessary | |
336 feature before it can be considered usable. We are looking for | |
337 volunteers to help implement this missing feature. | |
8070
3b53b25e2550
Add data sources and line series
David Bateman <dbateman@free.fr>
parents:
8014
diff
changeset
|
338 |
8737 | 339 ** Functions providing direct access to gnuplot have been removed. |
340 | |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
341 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
|
342 __gnuplot_show__, __gnuplot_replot__, __gnuplot_splot__, |
8737 | 343 __gnuplot_save_data__ and __gnuplot_send_inline_data__ have been |
344 removed from Octave. These function were incompatible with the | |
345 high level graphics handle code. | |
6329 | 346 |
8885 | 347 ** The Control, Finance and Quaternion functions have been removed. |
348 | |
349 These functions are now available as separate packages from | |
350 | |
351 http://octave.sourceforge.net/packages.html | |
352 | |
353 and can be reinstalled using the Octave package manager (see | |
354 the pkg function). | |
355 | |
356 ** Specific sparse matrix functions removed. | |
357 | |
358 The following functions, which handled only sparse matrices have | |
359 been removed. Instead of calling these functions directly, you | |
360 should use the corresponding function without the "sp" prefix. | |
8737 | 361 |
8885 | 362 spatan2 spcumsum spkron spprod |
363 spchol spdet splchol spqr | |
364 spchol2inv spdiag splu spsum | |
365 spcholinv spfind spmax spsumsqk | |
366 spcumprod spinv spmin | |
367 | |
368 ** Improvements to the debugger. | |
369 | |
370 The interactive debugging features have been improved. Stopping | |
371 on statements with dbstop should work correctly now. Stepping | |
372 into and over functions, and stepping one statement at a time | |
373 (with dbstep) now works. Moving up and down the call stack with | |
374 dbup and dbdown now works. The dbstack function is now available | |
375 to print the current function call stack. The new dbquit function | |
376 is available to exit the debugging mode. | |
377 | |
378 ** Improved traceback error messages. | |
379 | |
380 Traceback error messages are much more concise and easier to | |
381 understand. They now display information about the function call | |
382 stack instead of the stack of all statements that were active at | |
383 the point of the error. | |
8014
44d206ae68c9
improve fsolve compatibility
John W. Eaton <jwe@octave.org>
parents:
7990
diff
changeset
|
384 |
8737 | 385 ** Object Oriented Programming. |
8405
d79dfbff2f9d
document new norm features in NEWS
Jaroslav Hajek <highegg@gmail.com>
parents:
8396
diff
changeset
|
386 |
8737 | 387 Octave now includes OOP features and the user can create their own |
388 class objects and overloaded functions and operators. For | |
389 example, all methods of a class called "myclass" will be found in | |
390 a directory "@myclass" on the users path. The class specific | |
391 versions of functions and operators take precedence over the | |
392 generic versions of these functions. | |
393 | |
394 New functions related to OOP include | |
7189 | 395 |
8737 | 396 class inferiorto isobject loadobj methods superiorto |
397 | |
398 See the Octave manual for more details. | |
7038 | 399 |
8747 | 400 ** Parsing of Command-style Functions. |
401 | |
402 Octave now parses command-style functions without needing to first | |
403 declare them with "mark_as_command". The rules for recognizing a | |
404 command-style function calls are | |
405 | |
406 * A command must appear as the first word in a statement, | |
407 followed by a space. | |
408 | |
409 * The first character after the space must not be '=' or '(' | |
410 | |
411 * The next token after the space must not look like a binary | |
412 operator. | |
413 | |
414 These rules should be mostly compatible with the way Matlab parses | |
415 command-style function calls and allow users to define commands in | |
416 .m files without having to mark them as commands. | |
417 | |
418 Note that previous versions of Octave allowed expressions like | |
419 | |
420 x = load -text foo.dat | |
421 | |
422 but an expression like this will now generate a parse error. In | |
423 order to assign the value returned by a function to a variable, | |
424 you must use the normal function call syntax: | |
425 | |
426 x = load ("-text", "foo.dat"); | |
427 | |
8737 | 428 ** Block comments. |
429 | |
8747 | 430 Commented code can be between matching "#{" and "#}" or "%{" and |
431 "%}" markers, even if the commented code spans several line. This | |
432 allows blocks code to be commented, without needing to comment | |
433 each line. For example, | |
5814 | 434 |
8747 | 435 function [s, t] = func (x, y) |
436 s = 2 * x; | |
437 #{ | |
438 s *= y; | |
439 t = y + x; | |
440 #} | |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
441 endfunction |
5814 | 442 |
8747 | 443 the lines "s *= y;" and "t = y + x" will not be executed. |
8737 | 444 |
445 ** Special treatment in the parser of expressions like "a' * b". | |
2452 | 446 |
8737 | 447 In these cases the transpose is no longer explicitly formed and |
448 BLAS libraries are called with the transpose flagged, | |
449 significantly improving performance for these kinds of | |
450 operations. | |
8417
654bcfb937bf
Add the eigs and svds functions
David Bateman <dbateman@free.fr>
parents:
8405
diff
changeset
|
451 |
8737 | 452 ** Single Precision data type. |
2452 | 453 |
8737 | 454 Octave now includes a single precision data type. Single |
455 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
|
456 from functions like ones, eye, etc. For example, |
5995 | 457 |
8737 | 458 single (1) |
459 ones (2, 2, "single") | |
460 zeros (2, 2, "single") | |
461 eye (2, 2, "single") | |
462 Inf (2, 2, "single") | |
463 NaN (2, 2, "single") | |
464 NA (2, 2, "single") | |
7279 | 465 |
8737 | 466 all create single precision variables. For compatibility with |
467 Matlab, mixed double/single precision operators and functions | |
468 return single precision types. | |
469 | |
470 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
|
471 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
|
472 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
|
473 visa-versa are warned that compatibility might not be assured. |
7279 | 474 |
8737 | 475 ** Improved array indexing. |
476 | |
477 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
|
478 completely rewritten and indexing is now significantly faster. |
8737 | 479 |
8755 | 480 ** Improved memory management. |
481 | |
482 Octave will now attempt to share data in some cases where previously | |
483 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
|
484 conversions between cells, structs and cs-lists. This usually reduces |
8755 | 485 both time and memory consumption. |
9128 | 486 Also, Octave will now attempt to detect and optimize usage of a vector |
487 as a stack, when elements are being repeatedly inserted at/removed from | |
488 the end of the vector. | |
8755 | 489 |
8738 | 490 ** Improved performance for reduction operations. |
491 | |
8755 | 492 The performance of the sum, prod, sumsq, cumsum, cumprod, any, all, |
493 max and min functions has been significantly improved. | |
8738 | 494 |
9006 | 495 ** Sorting and searching. |
496 | |
497 The performance of sort has been improved, especially when sorting | |
10453 | 498 indices are requested. An efficient built-in issorted |
499 implementation was added. The sortrows function now uses a more | |
500 efficient algorithm, especially in the homegeneous case. The lookup | |
501 function is now a built-in function performing a binary search, | |
502 optimized for long runs of close elements. Lookup also works with | |
503 cell arrays of strings. | |
9006 | 504 |
505 ** Range arithmetics | |
506 | |
10453 | 507 For some operations on ranges, Octave will attempt to keep the |
508 result as a range. These include negation, adding a scalar, | |
509 subtracting a scalar, and multiplying by a scalar. Ranges with zero | |
510 increment are allowed and can be constructed using the built-in | |
511 function `ones'. | |
9006 | 512 |
513 ** Various performance improvements. | |
514 | |
10453 | 515 Performance of a number of other built-in operations and functions |
516 was improved, including: | |
9006 | 517 |
518 * logical operations | |
519 * comparison operators | |
520 * element-wise power | |
521 * accumarray | |
522 * cellfun | |
523 * isnan | |
524 * isinf | |
525 * isfinite | |
526 * nchoosek | |
527 * repmat | |
528 * strcmp | |
529 | |
8737 | 530 ** 64-bit integer arithmetic. |
531 | |
532 Arithmetic with 64-bit integers (int64 and uint64 types) is fully | |
533 supported, with saturation semantics like the other integer types. | |
534 Performance of most integer arithmetic operations has been | |
535 improved by using integer arithmetic directly. Previously, Octave | |
536 performed integer math with saturation semantics by converting the | |
537 operands to double precision, performing the operation, and then | |
538 converting the result back to an integer value, truncating if | |
539 necessary. | |
540 | |
8885 | 541 ** Diagonal and permutation matrices. |
542 | |
543 The interpreter can now treat diagonal and permutation matrices as | |
544 special objects that store only the non-zero elements, rather than | |
545 general full matrices. Therefore, it is now possible to construct | |
546 and use these matrices in linear algebra without suffering a | |
547 performance penalty due to storing large numbers of zero elements. | |
548 | |
549 ** Improvements to fsolve. | |
550 | |
551 The fsolve function now accepts an option structure argument (see | |
552 also the optimset function). The INFO values returned from fsolve | |
553 have changed to be compatible with Matlab's fsolve function. | |
554 Additionally, fsolve is now able to solve overdetermined systems, | |
555 complex-differentiable complex systems, systems with a sparse | |
556 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
|
557 inputs. It can also be called recursively. |
8885 | 558 |
8737 | 559 ** Improvements to the norm function. |
560 | |
561 The norm function is now able to compute row or column norms of a | |
562 matrix in a single call, as well as general matrix p-norms. | |
563 | |
564 ** New functions for computing some eigenvalues or singular values. | |
565 | |
566 The eigs and svds functions have been included in Octave. These | |
567 functions require the ARPACK library (now distributed under a | |
568 GPL-compatible license). | |
569 | |
570 ** 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
|
571 |
8737 | 572 choldelete cholshift qrdelete qrshift |
573 cholinsert cholupdate qrinsert qrupdate | |
574 | |
575 ** New quadrature functions. | |
576 | |
577 dblquad quadgk quadv triplequad | |
578 | |
8885 | 579 ** New functions for reading and writing images. |
580 | |
581 The imwrite and imread functions have been included in Octave. | |
582 These functions require the GraphicsMagick library. The new | |
583 function imfinfo provides information about an image file (size, | |
584 type, colors, etc.) | |
585 | |
9215
1500d0197484
allow multiple input event hook functions to be installed simultaneously
John W. Eaton <jwe@octave.org>
parents:
9128
diff
changeset
|
586 ** 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
|
587 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
|
588 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
|
589 |
8737 | 590 ** Other miscellaneous new functions. |
8370
34960ba08a81
document more new features in the NEWS file
Jaroslav Hajek <highegg@gmail.com>
parents:
8292
diff
changeset
|
591 |
8932
2d0f8692a82e
Add the 'histc' function
Soren Hauberg <hauberg@gmail.com>
parents:
8888
diff
changeset
|
592 addtodate hypot reallog |
2d0f8692a82e
Add the 'histc' function
Soren Hauberg <hauberg@gmail.com>
parents:
8888
diff
changeset
|
593 bicgstab idivide realpow |
9006 | 594 cellslices info realsqrt |
595 cgs interp1q rectint | |
596 command_line_path isdebugmode regexptranslate | |
597 contrast isfloat restoredefaultpath | |
598 convn isstrprop roundb | |
599 cummin log1p rundemos | |
600 cummax lsqnonneg runlength | |
601 datetick matlabroot saveobj | |
602 display namelengthmax spaugment | |
603 expm1 nargoutchk strchr | |
604 filemarker pathdef strvcat | |
605 fstat perl subspace | |
606 full prctile symvar | |
607 fzero quantile treelayout | |
608 genvarname re_read_readline_init_file validatestring | |
609 histc | |
8370
34960ba08a81
document more new features in the NEWS file
Jaroslav Hajek <highegg@gmail.com>
parents:
8292
diff
changeset
|
610 |
8885 | 611 ** Changes to strcat. |
612 | |
613 The strcat function is now compatible with Matlab's strcat | |
614 function, which removes trailing whitespace when concatenating | |
615 character strings. For example | |
616 | |
617 strcat ('foo ', 'bar') | |
618 ==> 'foobar' | |
619 | |
620 The new function cstrcat provides the previous behavior of | |
621 Octave's strcat. | |
622 | |
623 ** Improvements to the help functions. | |
624 | |
9034
52515efc50c0
Documentation cleanup on NEWS file
Rik <rdrider0-list@yahoo.com>
parents:
9031
diff
changeset
|
625 The help system has been mostly re-implemented in .m files to make |
8885 | 626 it easier to modify. Performance of the lookfor function has been |
627 greatly improved by caching the help text from all functions that | |
628 are distributed with Octave. The pkg function has been modified | |
629 to generate cache files for external packages when they are | |
630 installed. | |
631 | |
8888
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
632 ** Deprecated functions. |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
633 |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
634 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
|
635 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
|
636 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
|
637 |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
638 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
|
639 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
|
640 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
|
641 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
|
642 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
|
643 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
|
644 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
|
645 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
|
646 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
|
647 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
|
648 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
|
649 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
|
650 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
|
651 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
|
652 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
|
653 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
|
654 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
|
655 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
|
656 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
|
657 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
|
658 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
|
659 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
|
660 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
|
661 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
|
662 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
|
663 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
|
664 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
|
665 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
|
666 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
|
667 |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
668 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
|
669 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
|
670 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
|
671 |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
672 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
|
673 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
|
674 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
|
675 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
|
676 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
|
677 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
|
678 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
|
679 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
|
680 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
|
681 spchol split |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
682 spchol2inv splu |
0c7b0049c023
mark create_set as deprecated in 3.2, not 3.0
John W. Eaton <jwe@octave.org>
parents:
8885
diff
changeset
|
683 |
7990
86dae6e5b83c
Initial update of NEWS for 3.2 release
David Bateman <dbateman@free.fr>
parents:
7279
diff
changeset
|
684 See NEWS.3 for old news. |