Mercurial > octave-dspies
view README @ 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 | d63878346099 |
children |
line wrap: on
line source
GNU Octave -- a high-level language for numerical computations. Copyright (C) 1996-2013 John W. Eaton Overview -------- GNU Octave is a high-level language, primarily intended for numerical computations. It provides a convenient command line interface for solving linear and nonlinear problems numerically. GNU Octave is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GNU Octave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the file COPYING for more details. Availability ------------ The latest released version of Octave is always available via anonymous ftp from ftp.gnu.org and its many mirror sites around the world. You may also find links to binary distributions at http://www.octave.org/download.html. The current development sources may be found on Savannah (http://savannah.gnu.org/projects/octave) under the Source Code tab. Installation ------------ Octave requires approximately 1.4 GB of disk storage to unpack and compile from source (significantly less, 400 MB, if you don't compile with debugging symbols). Once installed, Octave requires approximately 350MB of disk space (again, considerably less, 70 MB, if you don't build shared libraries or the binaries and libraries do not include debugging symbols). To compile Octave, you will need a recent version of GNU Make. You will also need a recent version of g++ or another ANSI C++ compiler. You will also need a Fortran 77 compiler or f2c. If you use f2c, you will need a script like fort77 that works like a normal Fortran compiler by combining f2c with your C compiler in a single script. YOU MUST HAVE GNU MAKE TO COMPILE OCTAVE. Octave's Makefiles use features of GNU Make that are not present in other versions of make. GNU Make is very portable and easy to install. See the notes in the files INSTALL and the system-specific README files in the etc directory of the Octave source distribution for more specific installation instructions. Bugs and Patches ---------------- The file BUGS explains the recommended procedure for reporting bugs or contributing patches. Documentation ------------- Octave's manual has been revised for version 3.4, but it is lagging a bit behind the development of the software. In particular, there is currently no complete documentation of the C++ class libraries. If you notice omissions or inconsistencies, please report them on the bug tracker at http://bugs.octave.org. Specific suggestions for ways to improve Octave and its documentation are always welcome. Reports with patches are even more welcome. Additional Information ---------------------- Up to date information about Octave is available on the WWW at the URL http://www.octave.org, including archives of the help, bug, and maintainers mailing lists. Last updated: Fri, 10 Jun 2011 14:02:32 EDT