Mercurial > octave-dspies
view NEWS @ 19006:2e0613dadfee draft
All calls to "find" use the same generic implementation (bug #42408, 42421)
* find.cc: Rewrite.
Move generic "find" logic to find.h
(Ffind) : Changed calls to find_nonzero_elem_idx to find_templated
Added unit test for bug #42421
* Array.cc (and .h) (Array::find): Deleted function. Replaced with find::find(Array)
from find.h
* Array.h: Added typedef for array_iterator (in nz-iterators.h) as
Array::iter_type
* DiagArray2.h: Added typedef for diag_iterator (in nz-iterators.h) as
DiagArray2::iter_type
* PermMatrix.h: Added typedef for perm_iterator (in nz-iterators.h) as
PermMatrix::iter_type
Also added typedef for bool as PermMatrix::element_type
(not octave_idx_type)
Added an nnz() function (which is an alias for perm_length) and a
perm_elem(i) function for retrieving the ith element of the permutation
* Sparse.h: Added typedef for sparse_iterator (in nz-iterators.h) as
Sparse::iter_type
Added a short comment documenting the the argument to the numel
function
* idx-vector.cc (idx_vector::idx_mask_rep::as_array): Changed Array.find to
find::find(Array) (in find.h)
* (new file) find.h
* (new file) interp-idx.h: Simple methods for converting between interpreter
index type and internal octave_idx_type/row-col pair
* (new file) min-with-nnz.h: Fast methods for taking an arbitrary matrix M and
an octave_idx_type n and finding min(M.nnz(), n)
* (new file) nz-iterators.h: Iterators for traversing (in column-major order)
the nonzero elements of any array or matrix backwards or forwards
* (new file) direction.h: Generic methods for simplifying code has to deal with
a "backwards or forwards" template argument
* build-sparse-tests.sh: Removed 5-return-value calls to "find" in unit-tests;
Admittedly this commit breaks this "feature" which was undocumented and only
partially supported to begin with (ie never worked for full matrices,
permutation matrices, or diagonal matrices)
author | David Spies <dnspies@gmail.com> |
---|---|
date | Tue, 17 Jun 2014 16:41:11 -0600 |
parents | d1c649bd90e9 |
children |
line wrap: on
line source
Summary of important user-visible changes for version 4.2: --------------------------------------------------------- ** A new syntax for object oriented programming termed classdef has been introduced. See the manual for more extensive documentation of the classdef interface. New keywords: classdef endclassdef enumeration endenumeration events endevents methods endmethods properties endproperties ** Interpolation function changes for Matlab compatibility The interpolation method 'cubic' is now equivalent to 'pchip' for interp1, interp2, and interp3. Previously, 'cubic' was equivalent to 'spline' for interp2. This may produce different results as 'spline' has continuous 1st and 2nd derivatives while 'pchip' only has a continuous 1st derivative. ** Integer formats used in the printf family of functions now work for 64-bit integers and are more compatible with Matlab when printing non-integer values. Now instead of truncating, Octave will switch the effective format to '%g' in the following circumstances: * the value of an integer type (int8, uint32, etc.) value exceeds the maximum for the format specifier. For '%d', the limit is intmax ('int64') and for '%u' it is intmax ('uint64'). * round(x) != x or the value is outside the range allowed by the integer format specifier. There is still one difference: Matlab switches to '%e' and Octave is currently switching to '%g'. ** Z-order stacking issues with patches, grid lines, and line object plot markers for on screen display and printing have all been resolved. For 2-D plots the axis grid lines can be placed on top of the plot with set (gca, "layer", "top"). ** The patch graphic object has been overhauled. It now produces visual results equivalent to Matlab even for esoteric combinations of faces/vertices/cdata. ** The polar() plot function now draws a circular theta axis and radial rho axis rather than using a rectangular x/y axis. ** linkprop has been completely re-coded for performance and Matlab compatibility. It now returns a linkprop object which must be stored in a variable for as long as the graphic objects should remain linked. To unlink properties use 'clear hlink' where hlink is the variable containing the linkprop object. ** Other new functions added in 4.2: bandwidth isbanded javachk dir_in_loadpath isdiag linkaxes hgload istril numfields hgsave istriu ** Deprecated functions. The following functions have been deprecated in Octave 4.2 and will be removed from Octave 4.6 (or whatever version is the second major release after 4.2): bicubic find_dir_in_path nfields The following functions were deprecated in Octave 3.8 and have been removed from Octave 4.2. default_save_options java_new gen_doc_cache java_unsigned_conversion interp1q javafields isequalwithequalnans javamethods java_convert_matrix re_read_readline_init_file java_debug read_readline_init_file java_invoke saving_history The following keywords were deprecated in Octave 3.8 and have been removed from Octave 4.2 static The following configuration variables were deprecated in Octave 3.8 and have been removed from Octave 4.2 CC_VERSION (now GCC_VERSION) CXX_VERSION (now GXX_VERSION) The internal class <Octave_map> was deprecated in Octave 3.8 and has been removed from Octave 4.2. Replacement classes are <octave_map> (struct array) or <octave_scalar_map> for a single structure. Summary of important user-visible changes for version 4.0: --------------------------------------------------------- ** For compatibility with Matlab, the "backtrace" warning option is now enabled by default. ** The preference do_braindead_shortcircuit_evaluation is now enabled by default. ** The preference allow_noninteger_range_as_index is now enabled by default and the warning ID Octave:noninteger-range-as-index is now set to "on" by default instead of "error" by default and "on" for --traditional. ** polyeig now returns a row vector of eigenvalues rather than a matrix with the eigenvalues on the diagonal. This change was made for Matlab compatibility. ** Other new functions added in 4.0.0: validateattributes ** Deprecated functions. The following functions were deprecated in Octave 3.6 and have been removed from Octave 4.0. cut polyderiv cor shell_cmd corrcoef studentize __error_text__ sylvester_matrix error_text The following functions have been deprecated in Octave 4.0 and will be removed from Octave 4.4 (or whatever version is the second major release after 4.0): allow_noninteger_range_as_index do_braindead_shortcircuit_evaluation The internal function atan2 of the sparse matrix class has been deprecated in Octave 4.0 and will be removed from Octave 4.4 (or whatever version is the second major release after 4.0). Use the Fatan2 function with sparse inputs as a replacement. --------------------------------------------------------- See NEWS.3 for old news.